diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index af96604..489e3c3 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -80,20 +80,25 @@ func (s *Handlers) WaitForProcessing(ctx context.Context) int { return s.imgSvc.WaitForProcessing(ctx) } -// initImageService initializes the image cache and service. -func (s *Handlers) initImageService() error { - // Create the cache. cache_max_bytes: 0 disables the disk cache - // entirely; any other value is the eviction limit in bytes; when - // it is omitted, the cache works out the default limit itself. - cache, err := imgcache.NewCache(s.db.DB(), imgcache.CacheConfig{ - StateDir: s.config.StateDir, +// newCacheConfig builds the image cache's configuration from cfg. +// cache_max_bytes: 0 disables the disk cache entirely; any other value +// is the eviction limit in bytes; when it is omitted, the cache works +// out the default limit itself. +func newCacheConfig(cfg *config.Config, log *slog.Logger) imgcache.CacheConfig { + return imgcache.CacheConfig{ + StateDir: cfg.StateDir, CacheTTL: imgcache.DefaultCacheTTL, NegativeTTL: imgcache.DefaultNegativeTTL, - MaxBytes: s.config.CacheMaxBytes, - UseDefaultMaxBytes: !s.config.CacheMaxBytesExplicit, - DisableDiskCache: s.config.CacheMaxBytesExplicit && s.config.CacheMaxBytes == 0, - Logger: s.log, - }) + MaxBytes: cfg.CacheMaxBytes, + UseDefaultMaxBytes: !cfg.CacheMaxBytesExplicit, + DisableDiskCache: cfg.CacheMaxBytesExplicit && cfg.CacheMaxBytes == 0, + Logger: log, + } +} + +// initImageService initializes the image cache and service. +func (s *Handlers) initImageService() error { + cache, err := imgcache.NewCache(s.db.DB(), newCacheConfig(s.config, s.log)) if err != nil { return err }