Просмотр исходного кода

ReactiveMiniMongoIndex, added getCardCommentsWithCardId

Martin Filser 2 лет назад
Родитель
Сommit
42fad8fb98
2 измененных файлов с 25 добавлено и 2 удалено
  1. 22 0
      imports/reactiveCache.js
  2. 3 2
      models/cards.js

+ 22 - 0
imports/reactiveCache.js

@@ -1151,6 +1151,28 @@ ReactiveMiniMongoIndex = {
       }
     }
     return ret;
+  },
+  getCardCommentsWithCardId(cardId, addSelect = {}, options) {
+    let ret = []
+    if (cardId) {
+      const select = {addSelect, options}
+      if (!this.__cardCommentsWithId) {
+        this.__cardCommentsWithId = new DataCache(_select => {
+          const __select = Jsons.parse(_select);
+          const _cardComments = ReactiveCache.getCardComments(
+            { cardId: { $exists: true },
+              ...__select.addSelect,
+            }, __select.options);
+          const _ret = _.groupBy(_cardComments, 'cardId')
+          return _ret;
+        });
+      }
+      ret = this.__cardCommentsWithId.get(Jsons.stringify(select));
+      if (ret) {
+        ret = ret[cardId] || [];
+      }
+    }
+    return ret;
   }
 }
 

+ 3 - 2
models/cards.js

@@ -784,8 +784,9 @@ Cards.helpers({
         { sort: { createdAt: -1 } },
       );
     } else {
-      ret = ReactiveCache.getCardComments(
-        { cardId: this.getRealId() },
+      ret = ReactiveMiniMongoIndex.getCardCommentsWithCardId(
+        this.getRealId(),
+        {},
         { sort: { createdAt: -1 } },
       );
     }