zahmis 5 лет назад
Родитель
Сommit
eda2a56904
1 измененных файлов с 26 добавлено и 4 удалено
  1. 26 4
      src/server/routes/apiv3/slack-bot-setting.js

+ 26 - 4
src/server/routes/apiv3/slack-bot-setting.js

@@ -5,6 +5,7 @@ const logger = loggerFactory('growi:routes:apiv3:notification-setting');
 
 const express = require('express');
 const apiv3FormValidator = require('../../middlewares/apiv3-form-validator');
+const ErrorV3 = require('../../models/vo/error-apiv3');
 
 const router = express.Router();
 
@@ -31,6 +32,14 @@ module.exports = (crowi) => {
   const csrf = require('../../middlewares/csrf')(crowi);
   // const apiV3FormValidator = require('../../middlewares/apiv3-form-validator')(crowi);
 
+  async function updateCustomBotSettings(params) {
+    const { configManager } = crowi;
+
+    // update config without publishing S2sMessage
+    return configManager.updateConfigsInTheSameNamespace('crowi', params, true);
+  }
+
+
   /**
    * @swagger
    *
@@ -55,12 +64,25 @@ module.exports = (crowi) => {
 
   router.put('/custom-bot-setting', accessTokenParser, loginRequiredStrictly, adminRequired, csrf, async(req, res) => {
 
-    const slackBotSettingParams = {
+    const requestParams = {
       // temp data
-      slackSigningSecret: 1234567890,
-      slackBotToken: 'asdfghjkkl1234567890',
+      'slackbot:signingSecret': 1234567890,
+      'slackbot:token': 'asdfghjkkl1234567890',
     };
-    return res.apiv3({ slackBotSettingParams });
+
+    try {
+      await updateCustomBotSettings(requestParams);
+      const slackBotSettingParams = {
+        slackSigningSecret: await crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'),
+        slackBotToken: await crowi.configManager.getConfig('crowi', 'slackbot:token'),
+      };
+      return res.apiv3({ slackBotSettingParams });
+    }
+    catch (error) {
+      const msg = 'Error occured in updating Custom bot setting';
+      logger.error('Error', error);
+      return res.apiv3Err(new ErrorV3(msg, 'update-Custom bot-failed'));
+    }
   });
 
   return router;