yusuketk 5 лет назад
Родитель
Сommit
394b650096
2 измененных файлов с 19 добавлено и 20 удалено
  1. 14 10
      src/server/routes/apiv3/slack-bot.js
  2. 5 10
      src/server/service/bolt.js

+ 14 - 10
src/server/routes/apiv3/slack-bot.js

@@ -9,16 +9,20 @@ module.exports = (crowi) => {
   const { boltService } = crowi;
   const requestHandler = boltService.receiver.requestHandler.bind(boltService.receiver);
 
-  router.post('/', requestHandler);
-  // router.post('/', async(req, res) => {
-  //   try {
-  //     const response = await requestHandler(req.body) || null;
-  //     res.send(response);
-  //   }
-  //   catch (err) {
-  //     return res.apiv3Err(new ErrorV3(`Error:Slack-Bot:${err}`), 500);
-  //   }
-  // });
+  // router.post('/', requestHandler);
+  router.post('/', async(req, res) => {
+    if (req.body.type === 'url_verification') {
+      res.send(req.body);
+      return;
+    }
+    try {
+      const response = await requestHandler(req.body) || null;
+      res.send(response);
+    }
+    catch (err) {
+      return res.apiv3Err(new ErrorV3(`Error:Slack-Bot:${err}`), 500);
+    }
+  });
 
   return router;
 };

+ 5 - 10
src/server/service/bolt.js

@@ -6,26 +6,21 @@ class BoltReciever {
     this.bolt = app;
   }
 
-  async requestHandler(req, res) {
+  async requestHandler(body) {
     if (this.bolt === undefined) {
       throw new Error('Slack Bot service is not setup');
     }
 
     let ackCalled = false;
 
-    // for verification request URL on Event Subscriptions
-    if (req.body.type === 'url_verification') {
-      return req.body;
-    }
-
-    const payload = req.body.payload;
+    const payload = body.payload;
     let reqBody;
 
     if (payload != null) {
       reqBody = JSON.parse(payload);
     }
     else {
-      reqBody = req.body;
+      reqBody = body;
     }
 
     const event = {
@@ -42,10 +37,10 @@ class BoltReciever {
           throw new Error(message);
         }
         else if (!response) {
-          res.send('');
+          return;
         }
         else {
-          res.send(response);
+          return response;
         }
 
       },