(function() { 'use strict'; angular.module('app').factory('cacheManager', ['DSCacheFactory', link]); //service to manage cache related stuff function link(DSCacheFactory) { var cacheItems = [ 'orgsCache', 'orgsFullCache', 'allorgs', 'allorgsfull', 'orgsFrameworksCache', 'allOrgsFrameworksCache', 'allOrgsFrameworksInParentHierarchyCache' ]; var service = { bust: bust, createCaches: createCaches }; /* * Clear caches */ function bust() { angular.forEach(cacheItems, function (cacheItem) { var item = DSCacheFactory.get(cacheItem); if (item) { item.destroy(); } }); createCaches(); } function createCaches() { angular.forEach(cacheItems, function (cacheItem) { createCache(cacheItem) }); } function createCache(cacheName) { var cache = DSCacheFactory(cacheName, { storageMode: 'localStorage' }); cache.setOptions({ maxAge: 100000, deleteOnExpire: 'aggressive' }); return cache; } //we use DSCache to cache user's data function createMeCache() { var cache = DSCacheFactory(meCache, { storageMode: 'localStorage' }); cache.setOptions({ maxAge: 300000, deleteOnExpire: 'aggressive' }); } function createMyFrameworksCache() { var cache = DSCacheFactory(myFrameworksCache, { storageMode: 'localStorage' }); cache.setOptions({ maxAge: 30000, deleteOnExpire: 'aggressive' }); } return service; } })();