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

refactor getConnectionStatuses

itizawa 4 лет назад
Родитель
Сommit
8ff4972a87
1 измененных файлов с 10 добавлено и 5 удалено
  1. 10 5
      packages/slack/src/utils/check-communicable.ts

+ 10 - 5
packages/slack/src/utils/check-communicable.ts

@@ -69,13 +69,18 @@ const retrieveWorkspaceName = async(client: WebClient): Promise<string> => {
 
 
 /**
 /**
  * Get token string to ConnectionStatus map
  * Get token string to ConnectionStatus map
- * @param tokens Array of bot OAuth token
+ * @param keys Array of bot OAuth token or specific key
+ * @param botTokenResolver function to convert from key to token
  * @returns
  * @returns
  */
  */
-export const getConnectionStatuses = async(tokens: string[]): Promise<{[key: string]: ConnectionStatus}> => {
-  const map = tokens
+export const getConnectionStatuses = async(keys: string[], botTokenResolver?: (key: string) => string): Promise<{[key: string]: ConnectionStatus}> => {
+  const map = keys
     .reduce<Promise<Map<string, ConnectionStatus>>>(
     .reduce<Promise<Map<string, ConnectionStatus>>>(
-      async(acc, token) => {
+      async(acc, key) => {
+        let token = key;
+        if (botTokenResolver != null) {
+          token = botTokenResolver(key);
+        }
         const client = generateWebClient(token);
         const client = generateWebClient(token);
 
 
         const status: ConnectionStatus = {};
         const status: ConnectionStatus = {};
@@ -89,7 +94,7 @@ export const getConnectionStatuses = async(tokens: string[]): Promise<{[key: str
           status.error = err;
           status.error = err;
         }
         }
 
 
-        (await acc).set(token, status);
+        (await acc).set(key, status);
 
 
         return acc;
         return acc;