1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-06 20:10:05 +00:00

fix(*): handle login required state, fix session creation logic

This commit is contained in:
Krishna Acondy
2020-07-18 15:08:40 +01:00
parent a12244cf78
commit 8bf74d17e9
4 changed files with 47 additions and 33 deletions

View File

@@ -387,6 +387,7 @@ export default class SASjs {
loginRequiredCallback?: any,
accessToken?: string
) {
sasJob = sasJob.startsWith("/") ? sasJob.replace("/", "") : sasJob;
if (
this.sasjsConfig.serverType === ServerType.SASViya &&
this.sasjsConfig.contextName
@@ -498,36 +499,34 @@ export default class SASjs {
sasjsWaitingRequest.requestPromise.promise = new Promise(
async (resolve, reject) => {
const session = await this.checkSession();
if (!session.isLoggedIn) {
if (loginRequiredCallback) loginRequiredCallback(true);
sasjsWaitingRequest.requestPromise.resolve = resolve;
sasjsWaitingRequest.requestPromise.reject = reject;
this.sasjsWaitingRequests.push(sasjsWaitingRequest);
} else {
resolve(
await this.sasViyaApiClient
?.executeComputeJob(
sasJob,
this.sasjsConfig.contextName,
this.sasjsConfig.debug,
data,
accessToken
)
.then((response) => {
if (!this.sasjsConfig.debug) {
this.appendSasjsRequest(null, sasJob, null);
} else {
this.appendSasjsRequest(response, sasJob, null);
}
return JSON.parse(response!.result);
})
.catch((e) =>
reject({ MESSAGE: (e && e.message) || "Job execution failed" })
)
);
}
resolve(
await this.sasViyaApiClient
?.executeComputeJob(
sasJob,
this.sasjsConfig.contextName,
this.sasjsConfig.debug,
data,
accessToken
)
.then((response) => {
if (!this.sasjsConfig.debug) {
this.appendSasjsRequest(null, sasJob, null);
} else {
this.appendSasjsRequest(response, sasJob, null);
}
return JSON.parse(response!.result);
})
.catch((e) => {
if (e && e.includes(401)) {
if (loginRequiredCallback) loginRequiredCallback(true);
sasjsWaitingRequest.requestPromise.resolve = resolve;
sasjsWaitingRequest.requestPromise.reject = reject;
this.sasjsWaitingRequests.push(sasjsWaitingRequest);
} else {
reject({ MESSAGE: e || "Job execution failed" });
}
})
);
}
);
return sasjsWaitingRequest.requestPromise.promise;