From f48089cb8c50dd5f262a3e8a5f020ff46d856a3d Mon Sep 17 00:00:00 2001 From: Saad Jutt Date: Fri, 11 Feb 2022 21:04:51 +0500 Subject: [PATCH] fix(SASJS): sasjs server deployment with auth + refresh token bug --- src/SASjs.ts | 11 +++++++++-- src/SASjsApiClient.ts | 18 ++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/SASjs.ts b/src/SASjs.ts index 2728f16..2610612 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -865,8 +865,15 @@ export default class SASjs { ) } - public async deployToSASjs(members: [FolderMember, ServiceMember]) { - return await this.sasJSApiClient?.deploy(members, this.sasjsConfig.appLoc) + public async deployToSASjs( + members: [FolderMember, ServiceMember], + authConfig?: AuthConfig + ) { + return await this.sasJSApiClient?.deploy( + members, + this.sasjsConfig.appLoc, + authConfig + ) } public async executeJobSASjs(query: ExecutionQuery) { diff --git a/src/SASjsApiClient.ts b/src/SASjsApiClient.ts index 73ed694..4b60e54 100644 --- a/src/SASjsApiClient.ts +++ b/src/SASjsApiClient.ts @@ -1,8 +1,10 @@ +import { AuthConfig, ServerType } from '@sasjs/utils/types' import { FolderMember, ServiceMember, ExecutionQuery } from './types' import { RequestClient } from './request/RequestClient' import { getAccessTokenForSasjs } from './auth/getAccessTokenForSasjs' import { refreshTokensForSasjs } from './auth/refreshTokensForSasjs' import { getAuthCodeForSasjs } from './auth/getAuthCodeForSasjs' +import { getTokens } from './auth/getTokens' export class SASjsApiClient { constructor( @@ -14,7 +16,19 @@ export class SASjsApiClient { if (serverUrl) this.serverUrl = serverUrl } - public async deploy(members: [FolderMember, ServiceMember], appLoc: string) { + public async deploy( + members: [FolderMember, ServiceMember], + appLoc: string, + authConfig?: AuthConfig + ) { + let access_token = (authConfig || {}).access_token + if (authConfig) { + ;({ access_token } = await getTokens( + this.requestClient, + authConfig, + ServerType.Sasjs + )) + } const { result } = await this.requestClient.post<{ status: string message: string @@ -22,7 +36,7 @@ export class SASjsApiClient { }>( 'SASjsApi/drive/deploy', { fileTree: members, appLoc: appLoc }, - undefined + access_token ) return Promise.resolve(result)