Pārlūkot izejas kodu

Move every SessionData.findOne(idOrFirstObjectSelector, options) to the ReactiveCache

Martin Filser 2 gadi atpakaļ
vecāks
revīzija
49071ca5fd
3 mainītis faili ar 22 papildinājumiem un 4 dzēšanām
  1. 2 2
      client/lib/cardSearch.js
  2. 18 0
      imports/reactiveCache.js
  3. 2 2
      server/publications/cards.js

+ 2 - 2
client/lib/cardSearch.js

@@ -62,8 +62,8 @@ export class CardSearchPagedComponent extends BlazeComponent {
   }
 
   getSessionData(sessionId) {
-    return SessionData.findOne({
-      sessionId: sessionId ? sessionId : SessionData.getSessionId(),
+    return ReactiveCache.getSessionData({
+      sessionId: sessionId || SessionData.getSessionId(),
     });
   }
 

+ 18 - 0
imports/reactiveCache.js

@@ -155,6 +155,14 @@ ReactiveCacheServer = {
     const ret = Integrations.find(selector, options).fetch();
     return ret;
   },
+  getSessionData(idOrFirstObjectSelector, options) {
+    const ret = SessionData.findOne(idOrFirstObjectSelector, options);
+    return ret;
+  },
+  getSessionDatas(selector, options) {
+    const ret = SessionData.find(selector, options).fetch();
+    return ret;
+  },
   getCurrentSetting() {
     const ret = Settings.findOne();
     return ret;
@@ -996,6 +1004,16 @@ ReactiveCache = {
     }
     return ret;
   },
+  getSessionData(idOrFirstObjectSelector, options) {
+    // no reactive cache, otherwise global search will not work anymore
+    let ret = ReactiveCacheServer.getSessionData(idOrFirstObjectSelector, options);
+    return ret;
+  },
+  getSessionDatas(selector, options) {
+    // no reactive cache, otherwise global search will not work anymore
+    let ret = ReactiveCacheServer.getSessionDatas(selector, options);
+    return ret;
+  },
   getCurrentSetting() {
     let ret;
     if (Meteor.isServer) {

+ 2 - 2
server/publications/cards.js

@@ -648,7 +648,7 @@ Meteor.publish('brokenCards', function(sessionId) {
 Meteor.publish('nextPage', function(sessionId) {
   check(sessionId, String);
 
-  const session = SessionData.findOne({ sessionId });
+  const session = ReactiveCache.getSessionData({ sessionId });
   const projection = session.getProjection();
   projection.skip = session.lastHit;
 
@@ -658,7 +658,7 @@ Meteor.publish('nextPage', function(sessionId) {
 Meteor.publish('previousPage', function(sessionId) {
   check(sessionId, String);
 
-  const session = SessionData.findOne({ sessionId });
+  const session = ReactiveCache.getSessionData({ sessionId });
   const projection = session.getProjection();
   projection.skip = session.lastHit - session.resultsCount - projection.limit;