From 531eaa6411bd780f32d2d1695c0ef99418463560 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Fri, 23 Oct 2015 13:50:30 -0400 Subject: [PATCH] cache navigation data --- src/navigation/admin.js | 15 +++++++++++++-- src/navigation/index.js | 2 -- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/navigation/admin.js b/src/navigation/admin.js index d608e1b620..b66982a310 100644 --- a/src/navigation/admin.js +++ b/src/navigation/admin.js @@ -7,6 +7,7 @@ var admin = {}, db = require('../database'), translator = require('../../public/src/modules/translator'); +var navigationCache = null; admin.save = function(data, callback) { var order = Object.keys(data), @@ -23,6 +24,7 @@ admin.save = function(data, callback) { return JSON.stringify(data); }); + navigationCache = null; async.waterfall([ function(next) { db.delete('navigation:enabled', next); @@ -41,10 +43,19 @@ admin.getAdmin = function(callback) { }; admin.get = function(callback) { + if (navigationCache) { + return callback(null, navigationCache); + } + db.getSortedSetRange('navigation:enabled', 0, -1, function(err, data) { - callback(err, data.map(function(item, idx) { + if (err) { + return callback(err); + } + navigationCache = data.map(function(item, idx) { return JSON.parse(item)[idx]; - })); + }); + + callback(null, navigationCache); }); }; diff --git a/src/navigation/index.js b/src/navigation/index.js index 6c8be11d2f..7d536dcca9 100644 --- a/src/navigation/index.js +++ b/src/navigation/index.js @@ -2,8 +2,6 @@ var navigation = {}, - plugins = require('../plugins'), - db = require('../database'), admin = require('./admin'), translator = require('../../public/src/modules/translator');