From 96aac0cfa290ba27e79d3983989c5ea69654116d Mon Sep 17 00:00:00 2001 From: Mihajlo Date: Wed, 24 Nov 2021 20:26:02 +0100 Subject: [PATCH 1/3] fix: Sas9JobExecutor appendRequest --- src/SASjs.ts | 1 + src/job-execution/Sas9JobExecutor.ts | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/SASjs.ts b/src/SASjs.ts index 5c78bee..e77d22f 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -1044,6 +1044,7 @@ export default class SASjs { this.sasjsConfig.serverUrl, this.sasjsConfig.serverType!, this.jobsPath, + this.requestClient, this.sasjsConfig.httpsAgentOptions ) diff --git a/src/job-execution/Sas9JobExecutor.ts b/src/job-execution/Sas9JobExecutor.ts index 7325bdf..6a572c1 100644 --- a/src/job-execution/Sas9JobExecutor.ts +++ b/src/job-execution/Sas9JobExecutor.ts @@ -5,6 +5,7 @@ import { ErrorResponse } from '../types/errors' import { convertToCSV, isRelativePath } from '../utils' import { BaseJobExecutor } from './JobExecutor' import { Sas9RequestClient } from '../request/Sas9RequestClient' +import { RequestClient } from '../request/RequestClient' /** * Job executor for SAS9 servers for use in Node.js environments. @@ -18,6 +19,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { serverUrl: string, serverType: ServerType, private jobsPath: string, + private requestClientSingle: RequestClient, httpsAgentOptions?: https.AgentOptions ) { super(serverUrl, serverType) @@ -37,6 +39,8 @@ export class Sas9JobExecutor extends BaseJobExecutor { : '' }` + apiUrl = `${apiUrl}${config.debug ? '&_debug=131' : ''}` + let requestParams = { ...this.getRequestParams(config) } @@ -66,6 +70,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { data && Object.keys(data).length ? 'multipart/form-data; boundary=' + (formData as any)._boundary : 'text/plain' + return await this.requestClient!.post( apiUrl, formData, @@ -76,6 +81,24 @@ export class Sas9JobExecutor extends BaseJobExecutor { Connection: 'Keep-Alive' } ) + .then((res: any) => { + let resString = res + + if (typeof res === 'object') { + resString = JSON.stringify(res) + } + + this.requestClientSingle!.appendRequest(resString, sasJob, config.debug) + }) + .catch((err: any) => { + let errString = err + + if (typeof err === 'object') { + errString = JSON.stringify(errString) + } + + this.requestClientSingle!.appendRequest(errString, sasJob, config.debug) + }) } private getRequestParams(config: any): any { From bdf9e2fd5b8ff8d86aa9db396c53d89dc0e42de3 Mon Sep 17 00:00:00 2001 From: Mihajlo Date: Fri, 26 Nov 2021 15:32:10 +0100 Subject: [PATCH 2/3] fix: sas9JobExecutor not returning response --- src/job-execution/Sas9JobExecutor.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/job-execution/Sas9JobExecutor.ts b/src/job-execution/Sas9JobExecutor.ts index 6a572c1..46c8af3 100644 --- a/src/job-execution/Sas9JobExecutor.ts +++ b/src/job-execution/Sas9JobExecutor.ts @@ -53,6 +53,8 @@ export class Sas9JobExecutor extends BaseJobExecutor { } catch (e: any) { return Promise.reject(new ErrorResponse(e?.message, e)) } + } else { + data = '' } for (const key in requestParams) { @@ -66,6 +68,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { config.password, this.jobsPath ) + const contentType = data && Object.keys(data).length ? 'multipart/form-data; boundary=' + (formData as any)._boundary @@ -89,6 +92,8 @@ export class Sas9JobExecutor extends BaseJobExecutor { } this.requestClientSingle!.appendRequest(resString, sasJob, config.debug) + + return res }) .catch((err: any) => { let errString = err @@ -98,6 +103,8 @@ export class Sas9JobExecutor extends BaseJobExecutor { } this.requestClientSingle!.appendRequest(errString, sasJob, config.debug) + + return err }) } From c9ecc1dde43eff4bab97dca340a0ab37e2ca54db Mon Sep 17 00:00:00 2001 From: Mihajlo Date: Fri, 3 Dec 2021 11:54:52 +0100 Subject: [PATCH 3/3] chore: requestClient naming --- src/job-execution/Sas9JobExecutor.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/job-execution/Sas9JobExecutor.ts b/src/job-execution/Sas9JobExecutor.ts index 46c8af3..82336b4 100644 --- a/src/job-execution/Sas9JobExecutor.ts +++ b/src/job-execution/Sas9JobExecutor.ts @@ -14,16 +14,16 @@ import { RequestClient } from '../request/RequestClient' * job execution requests. */ export class Sas9JobExecutor extends BaseJobExecutor { - private requestClient: Sas9RequestClient + private sas9RequestClient: Sas9RequestClient constructor( serverUrl: string, serverType: ServerType, private jobsPath: string, - private requestClientSingle: RequestClient, + private requestClient: RequestClient, httpsAgentOptions?: https.AgentOptions ) { super(serverUrl, serverType) - this.requestClient = new Sas9RequestClient(serverUrl, httpsAgentOptions) + this.sas9RequestClient = new Sas9RequestClient(serverUrl, httpsAgentOptions) } async execute(sasJob: string, data: any, config: any) { @@ -63,7 +63,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { } } - await this.requestClient.login( + await this.sas9RequestClient.login( config.username, config.password, this.jobsPath @@ -74,7 +74,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { ? 'multipart/form-data; boundary=' + (formData as any)._boundary : 'text/plain' - return await this.requestClient!.post( + return await this.sas9RequestClient!.post( apiUrl, formData, undefined, @@ -91,7 +91,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { resString = JSON.stringify(res) } - this.requestClientSingle!.appendRequest(resString, sasJob, config.debug) + this.requestClient!.appendRequest(resString, sasJob, config.debug) return res }) @@ -102,7 +102,7 @@ export class Sas9JobExecutor extends BaseJobExecutor { errString = JSON.stringify(errString) } - this.requestClientSingle!.appendRequest(errString, sasJob, config.debug) + this.requestClient!.appendRequest(errString, sasJob, config.debug) return err })