diff --git a/packages/backend/src/apps/typeform/authentication.ts b/packages/backend/src/apps/typeform/authentication.ts index 4ba096c7..7eedc0d1 100644 --- a/packages/backend/src/apps/typeform/authentication.ts +++ b/packages/backend/src/apps/typeform/authentication.ts @@ -5,14 +5,12 @@ import type { IJSONObject, } from '@automatisch/types'; import { URLSearchParams } from 'url'; -import axios, { AxiosInstance } from 'axios'; +import HttpClient from '../../helpers/http-client'; export default class Authentication implements IAuthentication { appData: IApp; connectionData: IJSONObject; - client: AxiosInstance = axios.create({ - baseURL: 'https://api.typeform.com', - }); + client: HttpClient; scope: string[] = [ 'forms:read', @@ -27,6 +25,7 @@ export default class Authentication implements IAuthentication { constructor(appData: IApp, connectionData: IJSONObject) { this.connectionData = connectionData; this.appData = appData; + this.client = new HttpClient({ baseURL: 'https://api.typeform.com' }); } get oauthRedirectUrl() { diff --git a/packages/backend/src/graphql/mutations/create-auth-data.ts b/packages/backend/src/graphql/mutations/create-auth-data.ts index 756d69ce..8721e24f 100644 --- a/packages/backend/src/graphql/mutations/create-auth-data.ts +++ b/packages/backend/src/graphql/mutations/create-auth-data.ts @@ -1,5 +1,6 @@ import Context from '../../types/express/context'; import App from '../../models/app'; +import axios from 'axios'; type Params = { input: { @@ -22,11 +23,19 @@ const createAuthData = async ( const appClass = (await import(`../../apps/${connection.key}`)).default; const appData = App.findOneByKey(connection.key); - if (!connection.formattedData) { return null; } + if (!connection.formattedData) { + return null; + } const appInstance = new appClass(appData, connection.formattedData); const authLink = await appInstance.authenticationClient.createAuthData(); + try { + await axios.get(authLink.url); + } catch (error) { + throw new Error('Error occured while creating authorization URL!'); + } + await connection.$query().patch({ formattedData: { ...connection.formattedData,