mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-17 17:10:05 +00:00
feat: added type for error response
This commit is contained in:
56
src/SASjs.ts
56
src/SASjs.ts
@@ -30,7 +30,8 @@ import {
|
|||||||
ServerType,
|
ServerType,
|
||||||
CsrfToken,
|
CsrfToken,
|
||||||
UploadFile,
|
UploadFile,
|
||||||
EditContextInput
|
EditContextInput,
|
||||||
|
ErrorResponse
|
||||||
} from './types'
|
} from './types'
|
||||||
import { SASViyaApiClient } from './SASViyaApiClient'
|
import { SASViyaApiClient } from './SASViyaApiClient'
|
||||||
import { SAS9ApiClient } from './SAS9ApiClient'
|
import { SAS9ApiClient } from './SAS9ApiClient'
|
||||||
@@ -686,7 +687,9 @@ export default class SASjs {
|
|||||||
resolve(retryResponse)
|
resolve(retryResponse)
|
||||||
} else {
|
} else {
|
||||||
this.retryCountComputeApi = 0
|
this.retryCountComputeApi = 0
|
||||||
reject({ MESSAGE: 'Compute API retry requests limit reached' })
|
reject(
|
||||||
|
new ErrorResponse('Compute API retry requests limit reached')
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -697,7 +700,7 @@ export default class SASjs {
|
|||||||
sasjsWaitingRequest.config = config
|
sasjsWaitingRequest.config = config
|
||||||
this.sasjsWaitingRequests.push(sasjsWaitingRequest)
|
this.sasjsWaitingRequests.push(sasjsWaitingRequest)
|
||||||
} else {
|
} else {
|
||||||
reject({ MESSAGE: error || 'Job execution failed' })
|
reject(new ErrorResponse('Job execution failed', error))
|
||||||
}
|
}
|
||||||
|
|
||||||
this.appendSasjsRequest(response.log, sasJob, null)
|
this.appendSasjsRequest(response.log, sasJob, null)
|
||||||
@@ -779,11 +782,13 @@ export default class SASjs {
|
|||||||
resolve(retryResponse)
|
resolve(retryResponse)
|
||||||
} else {
|
} else {
|
||||||
this.retryCountJeseApi = 0
|
this.retryCountJeseApi = 0
|
||||||
reject({ MESSAGE: 'Jes API retry requests limit reached' })
|
reject(
|
||||||
|
new ErrorResponse('Jes API retry requests limit reached')
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reject({ MESSAGE: (e && e.message) || 'Job execution failed' })
|
reject(new ErrorResponse('Job execution failed', e))
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -895,7 +900,7 @@ export default class SASjs {
|
|||||||
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
sasjsWaitingRequest.requestPromise.promise = new Promise(
|
||||||
(resolve, reject) => {
|
(resolve, reject) => {
|
||||||
if (isError) {
|
if (isError) {
|
||||||
reject({ MESSAGE: errorMsg })
|
reject(new ErrorResponse(errorMsg))
|
||||||
}
|
}
|
||||||
const headers: any = {}
|
const headers: any = {}
|
||||||
if (this.csrfTokenWeb) {
|
if (this.csrfTokenWeb) {
|
||||||
@@ -961,9 +966,12 @@ export default class SASjs {
|
|||||||
if (jsonResponseText !== '') {
|
if (jsonResponseText !== '') {
|
||||||
resolve(JSON.parse(jsonResponseText))
|
resolve(JSON.parse(jsonResponseText))
|
||||||
} else {
|
} else {
|
||||||
reject({
|
reject(
|
||||||
MESSAGE: this.parseSAS9ErrorResponse(responseText)
|
new ErrorResponse(
|
||||||
})
|
'Job WEB execution failed',
|
||||||
|
this.parseSAS9ErrorResponse(responseText)
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
config.serverType === ServerType.SASViya &&
|
config.serverType === ServerType.SASViya &&
|
||||||
@@ -976,15 +984,30 @@ export default class SASjs {
|
|||||||
try {
|
try {
|
||||||
resolve(JSON.parse(resText))
|
resolve(JSON.parse(resText))
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
reject({ MESSAGE: resText })
|
reject(
|
||||||
|
new ErrorResponse(
|
||||||
|
'Job WEB debug response parsing failed',
|
||||||
|
{ response: resText, exception: e }
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
(err: any) => {
|
(err: any) => {
|
||||||
reject({ MESSAGE: err })
|
reject(
|
||||||
|
new ErrorResponse(
|
||||||
|
'Job WEB debug response parsing failed',
|
||||||
|
err
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
reject({ MESSAGE: responseText })
|
reject(
|
||||||
|
new ErrorResponse(
|
||||||
|
'Job WEB debug response parsing failed',
|
||||||
|
{ response: responseText, exception: e }
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.updateUsername(responseText)
|
this.updateUsername(responseText)
|
||||||
@@ -992,14 +1015,19 @@ export default class SASjs {
|
|||||||
const parsedJson = JSON.parse(responseText)
|
const parsedJson = JSON.parse(responseText)
|
||||||
resolve(parsedJson)
|
resolve(parsedJson)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
reject({ MESSAGE: responseText })
|
reject(
|
||||||
|
new ErrorResponse('Job WEB response parsing failed', {
|
||||||
|
response: responseText,
|
||||||
|
exception: e
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((e: Error) => {
|
.catch((e: Error) => {
|
||||||
reject(e)
|
reject(new ErrorResponse('Job WEB request failed', e))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
15
src/types/ErrorResponse.ts
Normal file
15
src/types/ErrorResponse.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
export class ErrorResponse {
|
||||||
|
body: ErrorBody
|
||||||
|
|
||||||
|
constructor(message: string, details?: any) {
|
||||||
|
this.body = {
|
||||||
|
message,
|
||||||
|
details
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ErrorBody {
|
||||||
|
message: string
|
||||||
|
details: any
|
||||||
|
}
|
||||||
@@ -9,3 +9,4 @@ export * from './SASjsWaitingRequest'
|
|||||||
export * from './ServerType'
|
export * from './ServerType'
|
||||||
export * from './Session'
|
export * from './Session'
|
||||||
export * from './UploadFile'
|
export * from './UploadFile'
|
||||||
|
export * from './ErrorResponse'
|
||||||
|
|||||||
Reference in New Issue
Block a user