Răsfoiți Sursa

sesponse slackAppIntegrationId

itizawa 4 ani în urmă
părinte
comite
40fd5446fa

+ 8 - 4
packages/slackbot-proxy/src/controllers/growi-to-slack.ts

@@ -64,12 +64,16 @@ export class GrowiToSlackCtrl {
     logger.debug(`${relations.length} relations found`, relations);
 
     // extract bot token
-    const tokens: string[] = relations
-      .map(relation => relation.installation?.data?.bot?.token)
-      .filter((v): v is string => v != null); // filter out null values
+    const botTokenResolverMapping: {[tokenGtoP:string]:string} = {};
 
-    const connectionStatuses = await getConnectionStatuses(tokens);
+    relations.forEach((relation) => {
+      const botToken = relation.installation?.data?.bot?.token;
+      if (botToken != null) {
+        botTokenResolverMapping[relation.tokenGtoP] = botToken;
+      }
+    });
 
+    const connectionStatuses = await getConnectionStatuses(Object.keys(botTokenResolverMapping), (tokenGtoP:string) => botTokenResolverMapping[tokenGtoP]);
     return res.send({ connectionStatuses });
   }
 

+ 5 - 7
src/server/routes/apiv3/slack-integration-settings.js

@@ -183,15 +183,13 @@ module.exports = (crowi) => {
       if (proxyServerUri != null) {
         try {
           if (settings.slackAppIntegrations.length > 0) {
-            const slackAppIntegrationsIds = [];
-            const tokenGtoPs = [];
+            const tokenGtoPToSlackAppIntegrationId = {};
             settings.slackAppIntegrations.forEach((slackAppIntegration) => {
-              slackAppIntegrationsIds.push(slackAppIntegration._id);
-              tokenGtoPs.push(slackAppIntegration.tokenGtoP);
+              tokenGtoPToSlackAppIntegrationId[slackAppIntegration.tokenGtoP] = slackAppIntegration._id;
             });
-            const result = await getConnectionStatusesFromProxy(tokenGtoPs);
-            Object.values(result.connectionStatuses).forEach((connectionStatus, i) => {
-              connectionStatuses[slackAppIntegrationsIds[i]] = connectionStatus;
+            const result = (await getConnectionStatusesFromProxy(Object.keys(tokenGtoPToSlackAppIntegrationId)));
+            Object.entries(result.connectionStatuses).forEach(([tokenGtoP, connectionStatus]) => {
+              connectionStatuses[tokenGtoPToSlackAppIntegrationId[tokenGtoP]] = connectionStatus;
             });
           }
         }