|
|
@@ -67,6 +67,29 @@ const retrieveWorkspaceName = async(client: WebClient): Promise<string> => {
|
|
|
return (result as any).team?.name;
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * @param token bot OAuth token
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+export const getConnectionStatus = async(token:string): Promise<ConnectionStatus> => {
|
|
|
+ const client = generateWebClient(token);
|
|
|
+ const status: ConnectionStatus = {};
|
|
|
+
|
|
|
+ try {
|
|
|
+ // try to connect
|
|
|
+ const resultTestSlackApiServer = await testSlackApiServer(client);
|
|
|
+ // check scope
|
|
|
+ await checkSlackScopes(resultTestSlackApiServer);
|
|
|
+ // retrieve workspace name
|
|
|
+ status.workspaceName = await retrieveWorkspaceName(client);
|
|
|
+ }
|
|
|
+ catch (err) {
|
|
|
+ status.error = err;
|
|
|
+ }
|
|
|
+
|
|
|
+ return status;
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* Get token string to ConnectionStatus map
|
|
|
* @param keys Array of bot OAuth token or specific key
|
|
|
@@ -81,23 +104,10 @@ export const getConnectionStatuses = async(keys: string[], botTokenResolver?: (k
|
|
|
if (botTokenResolver != null) {
|
|
|
token = botTokenResolver(key);
|
|
|
}
|
|
|
- const client = generateWebClient(token);
|
|
|
-
|
|
|
- const status: ConnectionStatus = {};
|
|
|
- try {
|
|
|
- // try to connect
|
|
|
- await testSlackApiServer(client);
|
|
|
- // retrieve workspace name
|
|
|
- status.workspaceName = await retrieveWorkspaceName(client);
|
|
|
- }
|
|
|
- catch (err) {
|
|
|
- status.error = err;
|
|
|
- }
|
|
|
-
|
|
|
- (await acc).set(key, status);
|
|
|
+ const status: ConnectionStatus = await getConnectionStatus(token);
|
|
|
|
|
|
+ (await acc).set(token, status);
|
|
|
return acc;
|
|
|
-
|
|
|
},
|
|
|
// define initial accumulator
|
|
|
Promise.resolve(new Map<string, ConnectionStatus>()),
|
|
|
@@ -107,16 +117,6 @@ export const getConnectionStatuses = async(keys: string[], botTokenResolver?: (k
|
|
|
return Object.fromEntries(await map);
|
|
|
};
|
|
|
|
|
|
-/**
|
|
|
- * @param token bot OAuth token
|
|
|
- * @returns
|
|
|
- */
|
|
|
-export const testToSlack = async(token:string): Promise<void> => {
|
|
|
- const client = generateWebClient(token);
|
|
|
- const res = await testSlackApiServer(client);
|
|
|
- await checkSlackScopes(res);
|
|
|
-};
|
|
|
-
|
|
|
export const sendSuccessMessage = async(token:string, channel:string, appSiteUrl:string): Promise<void> => {
|
|
|
const client = generateWebClient(token);
|
|
|
await client.chat.postMessage({
|