Explorar el Código

Merge pull request #3711 from weseek/feat/slack-api-proxy

Feat/slack api proxy
Yuki Takei hace 5 años
padre
commit
0edc7034c9
Se han modificado 2 ficheros con 20 adiciones y 7 borrados
  1. 3 3
      src/server/models/slack-app-integration.js
  2. 17 4
      src/server/service/slackbot.js

+ 3 - 3
src/server/models/slack-app-integration.js

@@ -2,9 +2,9 @@ module.exports = function(crowi) {
   const mongoose = require('mongoose');
 
   const slackAppIntegrationSchema = new mongoose.Schema({
-    accessTokenForGrowi: { type: String, required: true, unique: true },
-    accessTokenForProxy: { type: String, required: true, unique: true },
+    tokenGtoP: { type: String, required: true, unique: true },
+    tokenPtoG: { type: String, required: true, unique: true },
   });
 
-  return mongoose.model('SlackAppIntegrationSchema', slackAppIntegrationSchema);
+  return mongoose.model('SlackAppIntegration', slackAppIntegrationSchema);
 };

+ 17 - 4
src/server/service/slackbot.js

@@ -3,7 +3,7 @@ const mongoose = require('mongoose');
 
 const PAGINGLIMIT = 10;
 
-const { WebClient, LogLevel } = require('@slack/web-api');
+const { generateWebClient } = require('@growi/slack');
 
 const S2sMessage = require('../models/vo/s2s-message');
 const S2sMessageHandlable = require('./s2s-messaging/handlable');
@@ -28,10 +28,23 @@ class SlackBotService extends S2sMessageHandlable {
 
   async initialize() {
     this.isConnectedToSlack = false;
-    const token = this.crowi.configManager.getConfig('crowi', 'slackbot:token');
+    const currentBotType = this.crowi.configManager.getConfig('crowi', 'slackbot:currentBotType');
 
-    if (token != null) {
-      this.client = new WebClient(token, { logLevel: LogLevel.DEBUG });
+    if (currentBotType != null) {
+      let serverUri;
+      let token;
+
+      // connect to proxy
+      if (currentBotType !== 'customBotWithoutProxy') {
+        // TODO: https://youtrack.weseek.co.jp/issue/GW-5896
+        serverUri = 'http://localhost:8080/slack-api-proxy/';
+      }
+      // connect directly
+      else {
+        token = this.crowi.configManager.getConfig('crowi', 'slackbot:token');
+      }
+
+      this.client = generateWebClient(token, serverUri);
       logger.debug('SlackBot: setup is done');
       await this.sendAuthTest();
     }