1
0
mirror of https://github.com/sasjs/adapter.git synced 2025-12-11 09:24:35 +00:00

feat: added type for error response

This commit is contained in:
Mihajlo Medjedovic
2020-09-14 16:47:54 +02:00
parent 9af45799b9
commit 53990a9ba3
3 changed files with 58 additions and 14 deletions

View File

@@ -30,7 +30,8 @@ import {
ServerType,
CsrfToken,
UploadFile,
EditContextInput
EditContextInput,
ErrorResponse
} from './types'
import { SASViyaApiClient } from './SASViyaApiClient'
import { SAS9ApiClient } from './SAS9ApiClient'
@@ -686,7 +687,9 @@ export default class SASjs {
resolve(retryResponse)
} else {
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
this.sasjsWaitingRequests.push(sasjsWaitingRequest)
} else {
reject({ MESSAGE: error || 'Job execution failed' })
reject(new ErrorResponse('Job execution failed', error))
}
this.appendSasjsRequest(response.log, sasJob, null)
@@ -779,11 +782,13 @@ export default class SASjs {
resolve(retryResponse)
} else {
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(
(resolve, reject) => {
if (isError) {
reject({ MESSAGE: errorMsg })
reject(new ErrorResponse(errorMsg))
}
const headers: any = {}
if (this.csrfTokenWeb) {
@@ -961,9 +966,12 @@ export default class SASjs {
if (jsonResponseText !== '') {
resolve(JSON.parse(jsonResponseText))
} else {
reject({
MESSAGE: this.parseSAS9ErrorResponse(responseText)
})
reject(
new ErrorResponse(
'Job WEB execution failed',
this.parseSAS9ErrorResponse(responseText)
)
)
}
} else if (
config.serverType === ServerType.SASViya &&
@@ -976,15 +984,30 @@ export default class SASjs {
try {
resolve(JSON.parse(resText))
} catch (e) {
reject({ MESSAGE: resText })
reject(
new ErrorResponse(
'Job WEB debug response parsing failed',
{ response: resText, exception: e }
)
)
}
},
(err: any) => {
reject({ MESSAGE: err })
reject(
new ErrorResponse(
'Job WEB debug response parsing failed',
err
)
)
}
)
} catch (e) {
reject({ MESSAGE: responseText })
reject(
new ErrorResponse(
'Job WEB debug response parsing failed',
{ response: responseText, exception: e }
)
)
}
} else {
this.updateUsername(responseText)
@@ -992,14 +1015,19 @@ export default class SASjs {
const parsedJson = JSON.parse(responseText)
resolve(parsedJson)
} catch (e) {
reject({ MESSAGE: responseText })
reject(
new ErrorResponse('Job WEB response parsing failed', {
response: responseText,
exception: e
})
)
}
}
}
}
})
.catch((e: Error) => {
reject(e)
reject(new ErrorResponse('Job WEB request failed', e))
})
}
)

View 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
}

View File

@@ -9,3 +9,4 @@ export * from './SASjsWaitingRequest'
export * from './ServerType'
export * from './Session'
export * from './UploadFile'
export * from './ErrorResponse'