From 7422f63c626a40de044dee67d71156a33d9e6ce4 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Tue, 18 Oct 2022 23:01:56 +0200 Subject: [PATCH] refactor: Use beforeRequest hook with slack app --- .../apps/slack/actions/find-message/find-message.ts | 5 ----- .../actions/send-a-message-to-channel/post-message.ts | 6 +----- .../backend/src/apps/slack/auth/is-still-verified.ts | 3 ++- .../backend/src/apps/slack/common/add-auth-header.ts | 11 +++++++++++ .../src/apps/slack/data/list-channels/index.ts | 10 +++------- packages/backend/src/apps/slack/index.ts | 9 +++++++-- 6 files changed, 24 insertions(+), 20 deletions(-) create mode 100644 packages/backend/src/apps/slack/common/add-auth-header.ts diff --git a/packages/backend/src/apps/slack/actions/find-message/find-message.ts b/packages/backend/src/apps/slack/actions/find-message/find-message.ts index 05ac902f..72ae767e 100644 --- a/packages/backend/src/apps/slack/actions/find-message/find-message.ts +++ b/packages/backend/src/apps/slack/actions/find-message/find-message.ts @@ -8,10 +8,6 @@ type FindMessageOptions = { }; const findMessage = async ($: IGlobalVariable, options: FindMessageOptions) => { - const headers = { - Authorization: `Bearer ${$.auth.data.accessToken}`, - }; - const params = { query: options.query, sort: options.sortBy, @@ -20,7 +16,6 @@ const findMessage = async ($: IGlobalVariable, options: FindMessageOptions) => { }; const response = await $.http.get('/search.messages', { - headers, params, }); diff --git a/packages/backend/src/apps/slack/actions/send-a-message-to-channel/post-message.ts b/packages/backend/src/apps/slack/actions/send-a-message-to-channel/post-message.ts index 40d9969e..a43695ab 100644 --- a/packages/backend/src/apps/slack/actions/send-a-message-to-channel/post-message.ts +++ b/packages/backend/src/apps/slack/actions/send-a-message-to-channel/post-message.ts @@ -5,16 +5,12 @@ const postMessage = async ( channelId: string, text: string ) => { - const headers = { - Authorization: `Bearer ${$.auth.data.accessToken}`, - }; - const params = { channel: channelId, text, }; - const response = await $.http.post('/chat.postMessage', params, { headers }); + const response = await $.http.post('/chat.postMessage', params); const message: IActionOutput = { data: { diff --git a/packages/backend/src/apps/slack/auth/is-still-verified.ts b/packages/backend/src/apps/slack/auth/is-still-verified.ts index 809ad202..95a1ef29 100644 --- a/packages/backend/src/apps/slack/auth/is-still-verified.ts +++ b/packages/backend/src/apps/slack/auth/is-still-verified.ts @@ -1,6 +1,7 @@ +import { IGlobalVariable } from '@automatisch/types'; import verifyCredentials from './verify-credentials'; -const isStillVerified = async ($: any) => { +const isStillVerified = async ($: IGlobalVariable) => { try { await verifyCredentials($); return true; diff --git a/packages/backend/src/apps/slack/common/add-auth-header.ts b/packages/backend/src/apps/slack/common/add-auth-header.ts new file mode 100644 index 00000000..f4f2076f --- /dev/null +++ b/packages/backend/src/apps/slack/common/add-auth-header.ts @@ -0,0 +1,11 @@ +import { TBeforeRequest } from '@automatisch/types'; + +const addAuthHeader: TBeforeRequest = ($, requestConfig) => { + if (requestConfig.headers && $.auth.data?.accessToken) { + requestConfig.headers.Authorization = `Bearer ${$.auth.data.accessToken}`; + } + + return requestConfig; +}; + +export default addAuthHeader; diff --git a/packages/backend/src/apps/slack/data/list-channels/index.ts b/packages/backend/src/apps/slack/data/list-channels/index.ts index d9fa4ba3..84cbcdd0 100644 --- a/packages/backend/src/apps/slack/data/list-channels/index.ts +++ b/packages/backend/src/apps/slack/data/list-channels/index.ts @@ -13,19 +13,15 @@ export default { error: null, }; - const response = await $.http.get('/conversations.list', { - headers: { - Authorization: `Bearer ${$.auth.data.accessToken}`, - }, - }); + const response = await $.http.get('/conversations.list'); if (response.integrationError) { channels.error = response.integrationError; return channels; } - if (response.data.ok === 'false') { - channels.error = response.data.error; + if (response.data.ok === false) { + channels.error = response.data; return channels; } diff --git a/packages/backend/src/apps/slack/index.ts b/packages/backend/src/apps/slack/index.ts index 97652ba8..000d0deb 100644 --- a/packages/backend/src/apps/slack/index.ts +++ b/packages/backend/src/apps/slack/index.ts @@ -1,4 +1,7 @@ -export default { +import defineApp from '../../helpers/define-app'; +import addAuthHeader from './common/add-auth-header'; + +export default defineApp({ name: 'Slack', key: 'slack', iconUrl: '{BASE_URL}/apps/slack/assets/favicon.svg', @@ -6,4 +9,6 @@ export default { supportsConnections: true, baseUrl: 'https://slack.com', apiBaseUrl: 'https://slack.com/api', -}; + primaryColor: '4a154b', + beforeRequest: [addAuthHeader], +});