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

success to create a reciever instance in crowi / index.js

kaori 5 лет назад
Родитель
Сommit
8e67a494b3
2 измененных файлов с 12 добавлено и 3 удалено
  1. 9 0
      src/server/crowi/index.js
  2. 3 3
      src/server/service/bolt.js

+ 9 - 0
src/server/crowi/index.js

@@ -58,6 +58,7 @@ function Crowi(rootdir) {
   this.cdnResourcesService = new CdnResourcesService();
   this.interceptorManager = new InterceptorManager();
   this.boltService = null;
+  this.boltRecieverService = null;
   this.xss = new Xss();
 
   this.tokens = null;
@@ -118,6 +119,7 @@ Crowi.prototype.init = async function() {
     this.setupPageService(),
     this.setupSyncPageStatusService(),
     this.setupBoltService(),
+    this.setupBoltRecieverService(),
   ]);
 
   // globalNotification depends on slack and mailer
@@ -658,4 +660,11 @@ Crowi.prototype.setupBoltService = async function() {
   }
 };
 
+Crowi.prototype.setupBoltRecieverService = async function() {
+  const BoltRecieverService = require('../service/bolt-reciever');
+  if (this.boltRecieverService == null) {
+    this.boltRecieverService = new BoltRecieverService(process.env.SLACK_SIGNING_SECRET, '/');
+  }
+};
+
 module.exports = Crowi;

+ 3 - 3
src/server/service/bolt.js

@@ -9,14 +9,14 @@ class BoltService extends EventEmitter {
 
   constructor(crowi) {
     super();
-    this.crowi = crowi;
+    this.boltRecieverService = crowi.boltRecieverService;
   }
 
 
   getBoltAppInstance() {
-    const { BoltRecieverService } = this.crowi;
+    const { boltRecieverService } = this;
 
-    const receiver = new BoltRecieverService(process.env.SLACK_SIGNING_SECRET, '/');
+    const receiver = boltRecieverService;
 
     const appInstance = new App({
       token: process.env.SLACK_BOT_TOKEN,