|
@@ -3,7 +3,6 @@ const loggerFactory = require('@alias/logger');
|
|
|
const logger = loggerFactory('growi:routes:apiv3:notification-setting');
|
|
const logger = loggerFactory('growi:routes:apiv3:notification-setting');
|
|
|
const express = require('express');
|
|
const express = require('express');
|
|
|
const { body } = require('express-validator');
|
|
const { body } = require('express-validator');
|
|
|
-const { WebClient } = require('@slack/web-api');
|
|
|
|
|
const crypto = require('crypto');
|
|
const crypto = require('crypto');
|
|
|
const ErrorV3 = require('../../models/vo/error-apiv3');
|
|
const ErrorV3 = require('../../models/vo/error-apiv3');
|
|
|
|
|
|
|
@@ -102,6 +101,7 @@ module.exports = (crowi) => {
|
|
|
slackSigningSecret: crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'),
|
|
slackSigningSecret: crowi.configManager.getConfig('crowi', 'slackbot:signingSecret'),
|
|
|
slackBotToken: crowi.configManager.getConfig('crowi', 'slackbot:token'),
|
|
slackBotToken: crowi.configManager.getConfig('crowi', 'slackbot:token'),
|
|
|
isSetupSlackBot: crowi.slackBotService.isSetupSlackBot,
|
|
isSetupSlackBot: crowi.slackBotService.isSetupSlackBot,
|
|
|
|
|
+ isConnectedToSlack: crowi.slackBotService.isConnectedToSlack,
|
|
|
},
|
|
},
|
|
|
// TODO imple when creating with proxy
|
|
// TODO imple when creating with proxy
|
|
|
customBotWithProxySettings: {
|
|
customBotWithProxySettings: {
|
|
@@ -143,7 +143,7 @@ module.exports = (crowi) => {
|
|
|
await updateSlackBotSettings(requestParams);
|
|
await updateSlackBotSettings(requestParams);
|
|
|
|
|
|
|
|
// initialize slack service
|
|
// initialize slack service
|
|
|
- crowi.slackBotService.initialize();
|
|
|
|
|
|
|
+ await crowi.slackBotService.initialize();
|
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
|
|
|
|
|
|
const slackIntegrationSettingsParams = {
|
|
const slackIntegrationSettingsParams = {
|
|
@@ -154,7 +154,7 @@ module.exports = (crowi) => {
|
|
|
catch (error) {
|
|
catch (error) {
|
|
|
const msg = 'Error occured in updating Slack bot setting';
|
|
const msg = 'Error occured in updating Slack bot setting';
|
|
|
logger.error('Error', error);
|
|
logger.error('Error', error);
|
|
|
- return res.apiv3Err(new ErrorV3(msg, 'update-SlackIntegrationSetting-failed'));
|
|
|
|
|
|
|
+ return res.apiv3Err(new ErrorV3(msg, 'update-SlackIntegrationSetting-failed'), 500);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
@@ -191,7 +191,7 @@ module.exports = (crowi) => {
|
|
|
await updateSlackBotSettings(requestParams);
|
|
await updateSlackBotSettings(requestParams);
|
|
|
|
|
|
|
|
// initialize slack service
|
|
// initialize slack service
|
|
|
- crowi.slackBotService.initialize();
|
|
|
|
|
|
|
+ await crowi.slackBotService.initialize();
|
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
|
|
|
|
|
|
// TODO Impl to delete AccessToken both of Proxy and GROWI when botType changes.
|
|
// TODO Impl to delete AccessToken both of Proxy and GROWI when botType changes.
|
|
@@ -222,25 +222,18 @@ module.exports = (crowi) => {
|
|
|
* 200:
|
|
* 200:
|
|
|
* description: Succeeded to get slack ws name for custom bot without proxy
|
|
* description: Succeeded to get slack ws name for custom bot without proxy
|
|
|
*/
|
|
*/
|
|
|
- router.get('/custom-bot-without-proxy/slack-workspace-name', async(req, res) => {
|
|
|
|
|
- // get ws name in custom bot from slackbot token
|
|
|
|
|
- const slackBotToken = crowi.configManager.getConfig('crowi', 'slackbot:token');
|
|
|
|
|
|
|
+ router.get('/custom-bot-without-proxy/slack-workspace-name', loginRequiredStrictly, adminRequired, async(req, res) => {
|
|
|
|
|
|
|
|
- let slackWorkSpaceName = null;
|
|
|
|
|
- if (slackBotToken != null) {
|
|
|
|
|
- const web = new WebClient(slackBotToken);
|
|
|
|
|
- try {
|
|
|
|
|
- const slackTeamInfo = await web.team.info();
|
|
|
|
|
- slackWorkSpaceName = slackTeamInfo.team.name;
|
|
|
|
|
- }
|
|
|
|
|
- catch (error) {
|
|
|
|
|
- const msg = 'Error occured in slack_bot_token';
|
|
|
|
|
- logger.error('Error', msg);
|
|
|
|
|
- return res.apiv3Err(new ErrorV3(msg, 'get-SlackWorkSpaceName-failed'));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ const slackWorkSpaceName = await crowi.slackBotService.getSlackChannelName();
|
|
|
|
|
+ return res.apiv3({ slackWorkSpaceName });
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (error) {
|
|
|
|
|
+ const msg = 'Error occured in slack_bot_token';
|
|
|
|
|
+ logger.error('Error', error);
|
|
|
|
|
+ return res.apiv3Err(new ErrorV3(msg, 'get-SlackWorkSpaceName-failed'), 500);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return res.apiv3({ slackWorkSpaceName });
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -263,7 +256,7 @@ module.exports = (crowi) => {
|
|
|
await updateSlackBotSettings({ 'slackbot:access-token': accessToken });
|
|
await updateSlackBotSettings({ 'slackbot:access-token': accessToken });
|
|
|
|
|
|
|
|
// initialize slack service
|
|
// initialize slack service
|
|
|
- crowi.slackBotService.initialize();
|
|
|
|
|
|
|
+ await crowi.slackBotService.initialize();
|
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
|
|
|
|
|
|
return res.apiv3({ accessToken });
|
|
return res.apiv3({ accessToken });
|
|
@@ -294,7 +287,7 @@ module.exports = (crowi) => {
|
|
|
await updateSlackBotSettings({ 'slackbot:access-token': null });
|
|
await updateSlackBotSettings({ 'slackbot:access-token': null });
|
|
|
|
|
|
|
|
// initialize slack service
|
|
// initialize slack service
|
|
|
- crowi.slackBotService.initialize();
|
|
|
|
|
|
|
+ await crowi.slackBotService.initialize();
|
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
crowi.slackBotService.publishUpdatedMessage();
|
|
|
|
|
|
|
|
return res.apiv3({});
|
|
return res.apiv3({});
|