mirror of
https://github.com/lukaszraczylo/gohoarder.git
synced 2026-06-10 23:29:22 +00:00
feat: track download counts for both cache hits and cache misses
Previously, download counts only incremented on cache hits (when package was served from cache). First-time downloads (cache misses) were not counted. Changes: - Add UpdateDownloadCount() call when serving newly cached packages - This ensures every download through the proxy increments the counter - Analytics tracking also added for cache misses Behavior now: - First download (cache miss): counter = 1 - Second download (cache hit): counter = 2 - Third download (cache hit): counter = 3 - etc. Updated all relevant tests to expect the additional UpdateDownloadCount call. Resolves user requirement: "I want the counters to increase whenever package is downloaded via proxy - regardless of it being new download or cached download"
This commit is contained in:
Vendored
+16
@@ -320,6 +320,22 @@ servePkg:
|
||||
return nil, errors.Wrap(err, errors.ErrCodeStorageFailure, "failed to retrieve just-stored package")
|
||||
}
|
||||
|
||||
// Track download count for first-time download (cache miss)
|
||||
// This ensures download count increments regardless of cache hit/miss
|
||||
if err := m.metadata.UpdateDownloadCount(ctx, registry, name, version); err != nil {
|
||||
log.Warn().
|
||||
Err(err).
|
||||
Str("registry", registry).
|
||||
Str("package", name).
|
||||
Str("version", version).
|
||||
Msg("Failed to update download count for newly cached package")
|
||||
}
|
||||
|
||||
// Track download in analytics if enabled
|
||||
if m.analytics != nil {
|
||||
m.trackDownload(registry, name, version, storedPkg.Size)
|
||||
}
|
||||
|
||||
return &CacheEntry{
|
||||
Package: storedPkg,
|
||||
Data: storedData,
|
||||
|
||||
Reference in New Issue
Block a user