in reference-api/unified_handler.go [113:140]
func (deps *HandlerDeps) getFromCache(key string) (CachedResponse, bool) {
if value, ok := deps.cache.Get(key); ok {
currentTime := time.Now()
// Determine expiration time based on status code
var expirationTime time.Time
if value.StatusCode == http.StatusOK {
expirationTime = time.Unix(value.Timestamp, 0).Add(deps.config.SuccessCacheDuration)
} else {
expirationTime = time.Unix(value.Timestamp, 0).Add(deps.config.ErrorCacheDuration)
}
// Check if the cache entry has expired
if currentTime.After(expirationTime) {
log.Printf("Cache expired for key: %s (Stored at: %s, Expired at: %s)",
key, time.Unix(value.Timestamp, 0), expirationTime)
deps.cache.Remove(key)
return CachedResponse{}, false
}
log.Printf("Cache hit for key: %s (Stored at: %s, Expires at: %s), Status: %d",
key, time.Unix(value.Timestamp, 0), expirationTime, value.StatusCode)
return value, true
}
log.Printf("Cache miss for key: %s", key)
return CachedResponse{}, false
}