|
|
@@ -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 tokens Array of bot OAuth token
|
|
|
@@ -76,23 +99,10 @@ export const getConnectionStatuses = async(tokens: string[]): Promise<{[key: str
|
|
|
const map = tokens
|
|
|
.reduce<Promise<Map<string, ConnectionStatus>>>(
|
|
|
async(acc, token) => {
|
|
|
- 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;
|
|
|
- }
|
|
|
+ const status: ConnectionStatus = await getConnectionStatus(token);
|
|
|
|
|
|
(await acc).set(token, status);
|
|
|
-
|
|
|
return acc;
|
|
|
-
|
|
|
},
|
|
|
// define initial accumulator
|
|
|
Promise.resolve(new Map<string, ConnectionStatus>()),
|
|
|
@@ -102,16 +112,6 @@ export const getConnectionStatuses = async(tokens: string[]): Promise<{[key: str
|
|
|
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({
|