Просмотр исходного кода

set slackappintegration to connectionStatuses

itizawa 4 лет назад
Родитель
Сommit
4cc0cea71f

+ 3 - 3
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -105,12 +105,12 @@ const CustomBotWithProxySettings = (props) => {
 
 
       <div className="mx-3">
       <div className="mx-3">
         {slackAppIntegrations.map((slackAppIntegration, i) => {
         {slackAppIntegrations.map((slackAppIntegration, i) => {
-          const { tokenGtoP, tokenPtoG, slackBotToken } = slackAppIntegration;
-          const workspaceName = connectionStatuses[slackBotToken]?.workspaceName;
+          const { tokenGtoP, tokenPtoG, _id } = slackAppIntegration;
+          const workspaceName = connectionStatuses[_id]?.workspaceName;
           return (
           return (
             <React.Fragment key={slackAppIntegration._id}>
             <React.Fragment key={slackAppIntegration._id}>
               <div className="my-3 d-flex align-items-center justify-content-between">
               <div className="my-3 d-flex align-items-center justify-content-between">
-                <h2 id={slackBotToken || `settings-accordions-${i}`}>
+                <h2 id={_id || `settings-accordions-${i}`}>
                   {(workspaceName != null) ? `${workspaceName} Work Space` : `Settings #${i}`}
                   {(workspaceName != null) ? `${workspaceName} Work Space` : `Settings #${i}`}
                 </h2>
                 </h2>
                 <button
                 <button

+ 3 - 3
src/client/js/components/Admin/SlackIntegration/OfficialBotSettings.jsx

@@ -106,12 +106,12 @@ const OfficialBotSettings = (props) => {
 
 
       <div className="mx-3">
       <div className="mx-3">
         {slackAppIntegrations.map((slackAppIntegration, i) => {
         {slackAppIntegrations.map((slackAppIntegration, i) => {
-          const { tokenGtoP, tokenPtoG, slackBotToken } = slackAppIntegration;
-          const workspaceName = connectionStatuses[slackBotToken]?.workspaceName;
+          const { tokenGtoP, tokenPtoG, _id } = slackAppIntegration;
+          const workspaceName = connectionStatuses[_id]?.workspaceName;
           return (
           return (
             <React.Fragment key={slackAppIntegration._id}>
             <React.Fragment key={slackAppIntegration._id}>
               <div className="my-3 d-flex align-items-center justify-content-between">
               <div className="my-3 d-flex align-items-center justify-content-between">
-                <h2 id={slackBotToken || `settings-accordions-${i}`}>
+                <h2 id={_id || `settings-accordions-${i}`}>
                   {(workspaceName != null) ? `${workspaceName} Work Space` : `Settings #${i}`}
                   {(workspaceName != null) ? `${workspaceName} Work Space` : `Settings #${i}`}
                 </h2>
                 </h2>
                 <button
                 <button

+ 11 - 3
src/server/routes/apiv3/slack-integration-settings.js

@@ -149,7 +149,7 @@ module.exports = (crowi) => {
     }
     }
 
 
     // retrieve connection statuses
     // retrieve connection statuses
-    let connectionStatuses;
+    let connectionStatuses = {};
     if (currentBotType == null) {
     if (currentBotType == null) {
       // TODO imple null action
       // TODO imple null action
     }
     }
@@ -183,8 +183,16 @@ module.exports = (crowi) => {
       if (proxyServerUri != null) {
       if (proxyServerUri != null) {
         try {
         try {
           if (settings.slackAppIntegrations.length > 0) {
           if (settings.slackAppIntegrations.length > 0) {
-            const tokenGtoPs = settings.slackAppIntegrations.map(slackAppIntegration => slackAppIntegration.tokenGtoP);
-            connectionStatuses = (await getConnectionStatusesFromProxy(tokenGtoPs)).connectionStatuses;
+            const slackAppIntegrationsIds = [];
+            const tokenGtoPs = [];
+            settings.slackAppIntegrations.forEach((slackAppIntegration) => {
+              slackAppIntegrationsIds.push(slackAppIntegration._id);
+              tokenGtoPs.push(slackAppIntegration.tokenGtoP);
+            });
+            const result = await getConnectionStatusesFromProxy(tokenGtoPs);
+            Object.values(result.connectionStatuses).forEach((connectionStatus, i) => {
+              connectionStatuses[slackAppIntegrationsIds[i]] = connectionStatus;
+            });
           }
           }
         }
         }
         catch (error) {
         catch (error) {