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

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

Martin Filser 2 лет назад
Родитель
Сommit
49071ca5fd
3 измененных файлов с 22 добавлено и 4 удалено
  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) {
   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();
     const ret = Integrations.find(selector, options).fetch();
     return ret;
     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() {
   getCurrentSetting() {
     const ret = Settings.findOne();
     const ret = Settings.findOne();
     return ret;
     return ret;
@@ -996,6 +1004,16 @@ ReactiveCache = {
     }
     }
     return ret;
     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() {
   getCurrentSetting() {
     let ret;
     let ret;
     if (Meteor.isServer) {
     if (Meteor.isServer) {

+ 2 - 2
server/publications/cards.js

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