From 7be6f89a602c8beecd54a2d862df1996df65b6d9 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 13 Apr 2017 15:17:00 -0300 Subject: [PATCH] [FIX] Update server cache indexes on record updates --- packages/rocketchat-lib/server/models/_BaseCache.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/rocketchat-lib/server/models/_BaseCache.js b/packages/rocketchat-lib/server/models/_BaseCache.js index 2013d813a25..ea7f6e77abc 100644 --- a/packages/rocketchat-lib/server/models/_BaseCache.js +++ b/packages/rocketchat-lib/server/models/_BaseCache.js @@ -763,6 +763,7 @@ class ModelsBaseCache extends EventEmitter { console.error('Cache.updateDiffById: No record', this.collectionName, id, diff); return; } + this.removeFromAllIndexes(record); const updatedFields = _.without(Object.keys(diff), ...this.ignoreUpdatedFields); @@ -777,6 +778,7 @@ class ModelsBaseCache extends EventEmitter { } this.collection.update(record); + this.addToAllIndexes(record); if (updatedFields.length > 0) { this.emit('updated', record, diff); @@ -792,6 +794,8 @@ class ModelsBaseCache extends EventEmitter { } } + this.removeFromAllIndexes(record); + const topLevelFields = Object.keys(update).map(field => field.split('.')[0]); const updatedFields = _.without(topLevelFields, ...this.ignoreUpdatedFields); @@ -914,6 +918,7 @@ class ModelsBaseCache extends EventEmitter { } this.collection.update(record); + this.addToAllIndexes(record); if (updatedFields.length > 0) { this.emit('updated', record, record);