Files
SkyArtShop/backend/utils/cacheInvalidation.js
Local Server 2a2a3d99e5 webupdate
2026-01-18 02:22:05 -06:00

69 lines
1.5 KiB
JavaScript

/**
* Cache Invalidation Helper
* Add to admin routes to clear cache when data changes
*/
const { cache } = require("../middleware/cache");
const logger = require("../config/logger");
/**
* Invalidate product-related cache
*/
const invalidateProductCache = () => {
cache.deletePattern("products");
cache.deletePattern("product:"); // Clear individual product caches
cache.deletePattern("featured");
logger.debug("Product cache invalidated");
};
/**
* Invalidate blog-related cache
*/
const invalidateBlogCache = () => {
cache.deletePattern("blog");
logger.debug("Blog cache invalidated");
};
/**
* Invalidate portfolio-related cache
*/
const invalidatePortfolioCache = () => {
cache.deletePattern("portfolio");
logger.debug("Portfolio cache invalidated");
};
/**
* Invalidate homepage cache
*/
const invalidateHomepageCache = () => {
cache.deletePattern("homepage");
logger.debug("Homepage cache invalidated");
};
/**
* Invalidate pages cache
*/
const invalidatePagesCache = () => {
cache.deletePattern("pages");
cache.deletePattern("page:");
cache.deletePattern("/pages");
cache.deletePattern("GET:/api/pages");
logger.debug("Pages cache invalidated");
};
/**
* Invalidate all caches
*/
const invalidateAllCache = () => {
cache.clear();
logger.info("All cache cleared");
};
module.exports = {
invalidateProductCache,
invalidateBlogCache,
invalidatePortfolioCache,
invalidateHomepageCache,
invalidatePagesCache,
invalidateAllCache,
};