mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-18 17:40:06 +00:00
feat: request config override
This commit is contained in:
54
src/SASjs.ts
54
src/SASjs.ts
@@ -42,7 +42,8 @@ const requestRetryLimit = 5;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export default class SASjs {
|
export default class SASjs {
|
||||||
private sasjsConfig = new SASjsConfig();
|
private globalSasjsConfig: SASjsConfig = new SASjsConfig();
|
||||||
|
private sasjsConfig: SASjsConfig = new SASjsConfig();
|
||||||
private jobsPath: string = "";
|
private jobsPath: string = "";
|
||||||
private logoutUrl: string = "";
|
private logoutUrl: string = "";
|
||||||
private loginUrl: string = "";
|
private loginUrl: string = "";
|
||||||
@@ -60,8 +61,9 @@ export default class SASjs {
|
|||||||
...defaultConfig,
|
...defaultConfig,
|
||||||
...config,
|
...config,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.setupConfiguration();
|
this.setupConfiguration();
|
||||||
|
this.globalSasjsConfig = { ...this.sasjsConfig };
|
||||||
}
|
}
|
||||||
|
|
||||||
public async executeScriptSAS9(
|
public async executeScriptSAS9(
|
||||||
@@ -383,40 +385,51 @@ export default class SASjs {
|
|||||||
public async request(
|
public async request(
|
||||||
sasJob: string,
|
sasJob: string,
|
||||||
data: any,
|
data: any,
|
||||||
params?: any,
|
config?: SASjsConfig,
|
||||||
loginRequiredCallback?: any,
|
loginRequiredCallback?: any,
|
||||||
accessToken?: string
|
accessToken?: string
|
||||||
) {
|
) {
|
||||||
|
let requestResponse;
|
||||||
|
|
||||||
|
if (config) {
|
||||||
|
this.sasjsConfig = {
|
||||||
|
...this.globalSasjsConfig,
|
||||||
|
...config
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
sasJob = sasJob.startsWith("/") ? sasJob.replace("/", "") : sasJob;
|
sasJob = sasJob.startsWith("/") ? sasJob.replace("/", "") : sasJob;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
this.sasjsConfig.serverType === ServerType.SASViya &&
|
this.sasjsConfig.serverType === ServerType.SASViya &&
|
||||||
this.sasjsConfig.contextName
|
this.sasjsConfig.contextName
|
||||||
) {
|
) {
|
||||||
if (this.sasjsConfig.useComputeApi) {
|
if (this.sasjsConfig.useComputeApi) {
|
||||||
return await this.executeJobViaComputeApi(
|
requestResponse = await this.executeJobViaComputeApi(
|
||||||
sasJob,
|
sasJob,
|
||||||
data,
|
data,
|
||||||
params,
|
|
||||||
loginRequiredCallback,
|
loginRequiredCallback,
|
||||||
accessToken
|
accessToken
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return await this.executeJobViaJesApi(
|
requestResponse = await this.executeJobViaJesApi(
|
||||||
sasJob,
|
sasJob,
|
||||||
data,
|
data,
|
||||||
params,
|
|
||||||
loginRequiredCallback,
|
loginRequiredCallback,
|
||||||
accessToken
|
accessToken
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return await this.executeJobViaJes(
|
requestResponse = await this.executeJobViaWeb(
|
||||||
sasJob,
|
sasJob,
|
||||||
data,
|
data,
|
||||||
params,
|
|
||||||
loginRequiredCallback
|
loginRequiredCallback
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.sasjsConfig = this.globalSasjsConfig;
|
||||||
|
|
||||||
|
return requestResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -482,7 +495,6 @@ export default class SASjs {
|
|||||||
private async executeJobViaComputeApi(
|
private async executeJobViaComputeApi(
|
||||||
sasJob: string,
|
sasJob: string,
|
||||||
data: any,
|
data: any,
|
||||||
params?: any,
|
|
||||||
loginRequiredCallback?: any,
|
loginRequiredCallback?: any,
|
||||||
accessToken?: string
|
accessToken?: string
|
||||||
) {
|
) {
|
||||||
@@ -493,8 +505,7 @@ export default class SASjs {
|
|||||||
reject: null,
|
reject: null,
|
||||||
},
|
},
|
||||||
SASjob: sasJob,
|
SASjob: sasJob,
|
||||||
data,
|
data
|
||||||
params,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
||||||
@@ -535,7 +546,6 @@ export default class SASjs {
|
|||||||
private async executeJobViaJesApi(
|
private async executeJobViaJesApi(
|
||||||
sasJob: string,
|
sasJob: string,
|
||||||
data: any,
|
data: any,
|
||||||
params?: any,
|
|
||||||
loginRequiredCallback?: any,
|
loginRequiredCallback?: any,
|
||||||
accessToken?: string
|
accessToken?: string
|
||||||
) {
|
) {
|
||||||
@@ -546,8 +556,7 @@ export default class SASjs {
|
|||||||
reject: null,
|
reject: null,
|
||||||
},
|
},
|
||||||
SASjob: sasJob,
|
SASjob: sasJob,
|
||||||
data,
|
data
|
||||||
params,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
||||||
@@ -587,10 +596,9 @@ export default class SASjs {
|
|||||||
return sasjsWaitingRequest.requestPromise.promise;
|
return sasjsWaitingRequest.requestPromise.promise;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async executeJobViaJes(
|
private async executeJobViaWeb(
|
||||||
sasJob: string,
|
sasJob: string,
|
||||||
data: any,
|
data: any,
|
||||||
params?: any,
|
|
||||||
loginRequiredCallback?: any
|
loginRequiredCallback?: any
|
||||||
) {
|
) {
|
||||||
const sasjsWaitingRequest: SASjsWaitingRequest = {
|
const sasjsWaitingRequest: SASjsWaitingRequest = {
|
||||||
@@ -600,8 +608,7 @@ export default class SASjs {
|
|||||||
reject: null,
|
reject: null,
|
||||||
},
|
},
|
||||||
SASjob: sasJob,
|
SASjob: sasJob,
|
||||||
data,
|
data
|
||||||
params,
|
|
||||||
};
|
};
|
||||||
const program = this.sasjsConfig.appLoc
|
const program = this.sasjsConfig.appLoc
|
||||||
? this.sasjsConfig.appLoc.replace(/\/?$/, "/") + sasJob.replace(/^\//, "")
|
? this.sasjsConfig.appLoc.replace(/\/?$/, "/") + sasJob.replace(/^\//, "")
|
||||||
@@ -615,10 +622,8 @@ export default class SASjs {
|
|||||||
? "__program=" + program + "&_job=" + jobUri
|
? "__program=" + program + "&_job=" + jobUri
|
||||||
: "_program=" + program
|
: "_program=" + program
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
const inputParams = params ? params : {};
|
|
||||||
const requestParams = {
|
const requestParams = {
|
||||||
...inputParams,
|
|
||||||
...this.getRequestParams(),
|
...this.getRequestParams(),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -736,7 +741,7 @@ export default class SASjs {
|
|||||||
) {
|
) {
|
||||||
if (this.retryCount < requestRetryLimit) {
|
if (this.retryCount < requestRetryLimit) {
|
||||||
this.retryCount++;
|
this.retryCount++;
|
||||||
this.request(sasJob, data, params).then(
|
this.request(sasJob, data).then(
|
||||||
(res: any) => resolve(res),
|
(res: any) => resolve(res),
|
||||||
(err: any) => reject(err)
|
(err: any) => reject(err)
|
||||||
);
|
);
|
||||||
@@ -814,8 +819,7 @@ export default class SASjs {
|
|||||||
for (const sasjsWaitingRequest of this.sasjsWaitingRequests) {
|
for (const sasjsWaitingRequest of this.sasjsWaitingRequests) {
|
||||||
this.request(
|
this.request(
|
||||||
sasjsWaitingRequest.SASjob,
|
sasjsWaitingRequest.SASjob,
|
||||||
sasjsWaitingRequest.data,
|
sasjsWaitingRequest.data
|
||||||
sasjsWaitingRequest.params
|
|
||||||
).then(
|
).then(
|
||||||
(res: any) => {
|
(res: any) => {
|
||||||
sasjsWaitingRequest.requestPromise.resolve(res);
|
sasjsWaitingRequest.requestPromise.resolve(res);
|
||||||
|
|||||||
Reference in New Issue
Block a user