From 10b4066c8215b402527ca0d856b78ed8e7d7dac3 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 13 Mar 2023 19:10:20 +0000 Subject: [PATCH] refactor(signalwire): add dynamic api base url --- .../apps/signalwire/auth/is-still-verified.ts | 1 + .../signalwire/auth/verify-credentials.ts | 4 ++-- .../apps/signalwire/common/add-auth-header.ts | 23 ++++++++++++------- .../triggers/receive-sms/fetch-messages.ts | 4 ++-- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/backend/src/apps/signalwire/auth/is-still-verified.ts b/packages/backend/src/apps/signalwire/auth/is-still-verified.ts index 66bb963e..5a2fe2ae 100644 --- a/packages/backend/src/apps/signalwire/auth/is-still-verified.ts +++ b/packages/backend/src/apps/signalwire/auth/is-still-verified.ts @@ -3,6 +3,7 @@ import verifyCredentials from './verify-credentials'; const isStillVerified = async ($: IGlobalVariable) => { await verifyCredentials($); + return true; }; diff --git a/packages/backend/src/apps/signalwire/auth/verify-credentials.ts b/packages/backend/src/apps/signalwire/auth/verify-credentials.ts index ef75de44..fbbf5ddc 100644 --- a/packages/backend/src/apps/signalwire/auth/verify-credentials.ts +++ b/packages/backend/src/apps/signalwire/auth/verify-credentials.ts @@ -1,10 +1,10 @@ import { IGlobalVariable } from '@automatisch/types'; const verifyCredentials = async ($: IGlobalVariable) => { - await $.http.get('https://' + $.auth.data.spaceName + '.' + $.auth.data.spaceRegion + 'signalwire.com' + '/api/laml/2010-04-01/Accounts'); + const { data } = await $.http.get(`/api/laml/2010-04-01/Accounts/${$.auth.data.accountSid}`); await $.auth.set({ - screenName: $.auth.data.accountSid, + screenName: `${data.friendly_name} (${$.auth.data.accountSid})`, }); }; diff --git a/packages/backend/src/apps/signalwire/common/add-auth-header.ts b/packages/backend/src/apps/signalwire/common/add-auth-header.ts index f5f47f85..f26c2af2 100644 --- a/packages/backend/src/apps/signalwire/common/add-auth-header.ts +++ b/packages/backend/src/apps/signalwire/common/add-auth-header.ts @@ -1,19 +1,26 @@ import { TBeforeRequest } from '@automatisch/types'; const addAuthHeader: TBeforeRequest = ($, requestConfig) => { - if ( - requestConfig.headers && - $.auth.data?.accountSid && - $.auth.data?.authToken - ) { - requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded'; + const authData = $.auth.data || {}; + requestConfig.headers['Content-Type'] = 'application/x-www-form-urlencoded'; + + if ( + authData.accountSid && + authData.authToken + ) { requestConfig.auth = { - username: $.auth.data.accountSid as string, - password: $.auth.data.authToken as string, + username: authData.accountSid as string, + password: authData.authToken as string, }; } + if (authData.spaceName) { + const serverUrl = `https://${authData.spaceName}.${authData.spaceRegion}signalwire.com`; + + requestConfig.baseURL = serverUrl as string; + } + return requestConfig; }; diff --git a/packages/backend/src/apps/signalwire/triggers/receive-sms/fetch-messages.ts b/packages/backend/src/apps/signalwire/triggers/receive-sms/fetch-messages.ts index 31963130..425c5b20 100644 --- a/packages/backend/src/apps/signalwire/triggers/receive-sms/fetch-messages.ts +++ b/packages/backend/src/apps/signalwire/triggers/receive-sms/fetch-messages.ts @@ -4,7 +4,7 @@ const fetchMessages = async ($: IGlobalVariable) => { const toNumber = $.step.parameters.toNumber as string; let response; - let requestPath = 'https://' + $.auth.data.spaceName + '.' + $.auth.data.spaceRegion + 'signalwire.com' + `/api/laml/2010-04-01/Accounts/${$.auth.data.accountSid}/Messages?To=${toNumber}`; + let requestPath = `/api/laml/2010-04-01/Accounts/${$.auth.data.accountSid}/Messages?To=${toNumber}`; do { response = await $.http.get(requestPath); @@ -20,7 +20,7 @@ const fetchMessages = async ($: IGlobalVariable) => { $.pushTriggerItem(dataItem); }); - requestPath = 'https://' + $.auth.data.spaceName + '.' + $.auth.data.spaceRegion + 'signalwire.com' + response.data.next_page_uri; + requestPath = response.data.next_page_uri; } while (requestPath); };