@@ -320,32 +320,26 @@ class GroupService {
320320 * @return {Promise } Resolves to ID array.
321321 */
322322 async getGroupTreeIds ( rootGroupId , maxage = 5 * 60 * 1000 ) {
323- //TODO: Once the fix is validated and working, remove all commented code related to caching
324- /**
325- * Removing the caching mechanism,
326- * as the group created on the day will only be pickedup on the next day
327- * and stored in the cache
328- */
329- // const now = Date.now();
330- // const cache = this.private.cache.groupTreeIds;
323+ const now = Date . now ( ) ;
324+ const cache = this . private . cache . groupTreeIds ;
331325
332326 /* Clean-up: removes stale records from the cache. */
333- // const CLEAN_UP_INTERVAL = 24 * 60 * 60 * 1000; // 1 day in ms.
334- // if (now - cache.lastCleanUp > CLEAN_UP_INTERVAL) {
335- // _.forOwn(cache, ({ timestamp }, key) => {
336- // if (now - timestamp > CLEAN_UP_INTERVAL) delete cache[key];
337- // });
338- // cache.lastCleanUp = now;
339- // }
327+ const CLEAN_UP_INTERVAL = 1 * 60 * 60 * 1000 ; // 1 hour in ms.
328+ if ( now - cache . lastCleanUp > CLEAN_UP_INTERVAL ) {
329+ _ . forOwn ( cache , ( { timestamp } , key ) => {
330+ if ( now - timestamp > CLEAN_UP_INTERVAL ) delete cache [ key ] ;
331+ } ) ;
332+ cache . lastCleanUp = now ;
333+ }
340334
341335 /* If result is found in cache, and is fresh enough, return it. */
342- // const cached = cache[rootGroupId];
343- // if (cached && now - cached.timestamp < maxage) return _.clone(cached.data);
336+ const cached = cache [ rootGroupId ] ;
337+ if ( cached && now - cached . timestamp < maxage ) return _ . clone ( cached . data ) ;
344338
345339 /* Otherwise, fetch result from the API, write it to the cache, and
346340 * finally return that. */
347341 const res = reduceGroupIds ( await this . getGroup ( rootGroupId ) ) ;
348- // cache[rootGroupId] = { data: res, timestamp: now };
342+ cache [ rootGroupId ] = { data : res , timestamp : now } ;
349343 return _ . clone ( res ) ;
350344 }
351345
0 commit comments