func()

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
}