From 1be64798c525b0feac4b2cfc62653579992ab19f Mon Sep 17 00:00:00 2001 From: Krishna Acondy Date: Sun, 20 Sep 2020 11:42:49 +0100 Subject: [PATCH] fix(job-execution): fetch log when webout is not available --- src/SASViyaApiClient.ts | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index aeb4b4b..bd7c8d1 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -14,9 +14,10 @@ import { Context, Folder, CsrfToken, - EditContextInput + EditContextInput, + ErrorResponse, + JobDefinition } from './types' -import { JobDefinition } from './types/JobDefinition' import { formatDataForRequest } from './utils/formatDataForRequest' import { SessionManager } from './SessionManager' @@ -540,9 +541,30 @@ export class SASViyaApiClient { `${this.serverUrl}${resultLink}`, { headers }, 'text' - ).catch((e) => ({ - result: JSON.stringify(e) - })) + ).catch(async (e) => { + if (e && e.status === 404) { + if (logLink) { + log = await this.request( + `${this.serverUrl}${logLink.href}/content?limit=10000`, + { + headers + } + ).then((res: any) => + res.result.items.map((i: any) => i.line).join('\n') + ) + + return Promise.reject( + new ErrorResponse('Job execution failed', { + status: 500, + body: log + }) + ) + } + } + return { + result: JSON.stringify(e) + } + }) } await this.sessionManager.clearSession(executionSessionId, accessToken)