From f01f6fe477984dae8b343254d9ad55bb9f82d48c Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Tue, 5 Nov 2013 13:35:54 +0300 Subject: [PATCH] Fixed bug causing device preset to be processed twice in some cases. --- db.coffee | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/db.coffee b/db.coffee index e069bce..6a6b334 100644 --- a/db.coffee +++ b/db.coffee @@ -59,23 +59,25 @@ getPresets = (callback) -> callback(presets, objects) return - presetsCollection.find().toArray((err, p) -> - throw err if err - presets = p + if not presets + presetsCollection.find().toArray((err, p) -> + throw err if err + presets = p - redisClient.setex('presets', config.PRESETS_CACHE_DURATION, JSON.stringify(presets)) - callback(presets, objects) if objects - ) + redisClient.setex('presets', config.PRESETS_CACHE_DURATION, JSON.stringify(presets)) + callback(presets, objects) if objects + ) - objectsCollection.find().toArray((err, o) -> - throw err if err - objects = {} - for i in o - objects[i._id] = i + if not objects + objectsCollection.find().toArray((err, o) -> + throw err if err + objects = {} + for i in o + objects[i._id] = i - redisClient.setex('objects', config.PRESETS_CACHE_DURATION, JSON.stringify(objects)) - callback(presets, objects) if presets - ) + redisClient.setex('objects', config.PRESETS_CACHE_DURATION, JSON.stringify(objects)) + callback(presets, objects) if presets + ) )