mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-04 11:10:05 +00:00
Merge pull request #696 from sasjs/certificate-error
fix(error): throw Certificate error wherever possible
This commit is contained in:
@@ -11,7 +11,11 @@ import {
|
||||
JobDefinition,
|
||||
PollOptions
|
||||
} from './types'
|
||||
import { JobExecutionError, RootFolderNotFoundError } from './types/errors'
|
||||
import {
|
||||
CertificateError,
|
||||
JobExecutionError,
|
||||
RootFolderNotFoundError
|
||||
} from './types/errors'
|
||||
import { SessionManager } from './SessionManager'
|
||||
import { ContextManager } from './ContextManager'
|
||||
import { SasAuthResponse, MacroVar, AuthConfig } from '@sasjs/utils/types'
|
||||
@@ -878,7 +882,8 @@ export class SASViyaApiClient {
|
||||
|
||||
const { result: folder } = await this.requestClient
|
||||
.get<Folder>(`${this.serverUrl}${url}`, accessToken)
|
||||
.catch(() => {
|
||||
.catch((err) => {
|
||||
if (err instanceof CertificateError) throw err
|
||||
return { result: null }
|
||||
})
|
||||
|
||||
@@ -899,7 +904,8 @@ export class SASViyaApiClient {
|
||||
|
||||
const { result: folder } = await this.requestClient
|
||||
.get<Folder>(`${this.serverUrl}${url}`, accessToken)
|
||||
.catch(() => {
|
||||
.catch((err) => {
|
||||
if (err instanceof CertificateError) throw err
|
||||
return { result: null }
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { SasAuthResponse } from '@sasjs/utils/types'
|
||||
import { prefixMessage } from '@sasjs/utils/error'
|
||||
import { RequestClient } from '../request/RequestClient'
|
||||
import { CertificateError } from '../types/errors'
|
||||
|
||||
/**
|
||||
* Exchanges the auth code for an access token for the given client.
|
||||
@@ -36,6 +37,7 @@ export async function getAccessTokenForViya(
|
||||
.post(url, data, undefined, 'application/x-www-form-urlencoded', headers)
|
||||
.then((res) => res.result as SasAuthResponse)
|
||||
.catch((err) => {
|
||||
if (err instanceof CertificateError) throw err
|
||||
throw prefixMessage(err, 'Error while getting access token. ')
|
||||
})
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@ import {
|
||||
LoginRequiredError,
|
||||
NotFoundError,
|
||||
InternalServerError,
|
||||
JobExecutionError
|
||||
JobExecutionError,
|
||||
CertificateError
|
||||
} from '../types/errors'
|
||||
import { SASjsRequest } from '../types'
|
||||
import { parseWeboutResponse } from '../utils/parseWeboutResponse'
|
||||
@@ -517,6 +518,10 @@ export class RequestClient implements HttpClient {
|
||||
else return
|
||||
}
|
||||
|
||||
if (e.isAxiosError && e.code === 'UNABLE_TO_VERIFY_LEAF_SIGNATURE') {
|
||||
throw new CertificateError(e.message)
|
||||
}
|
||||
|
||||
if (e.message) throw e
|
||||
else throw prefixMessage(e, 'Error while handling error. ')
|
||||
}
|
||||
|
||||
12
src/types/errors/CertificateError.ts
Normal file
12
src/types/errors/CertificateError.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
const instructionsToFix =
|
||||
'https://github.com/sasjs/cli/issues/1181#issuecomment-1090638584'
|
||||
|
||||
export class CertificateError extends Error {
|
||||
constructor(message: string) {
|
||||
super(
|
||||
`${message}\nPlease visit the link below for further information on this issue:\n- ${instructionsToFix}\n`
|
||||
)
|
||||
this.name = 'CertificateError'
|
||||
Object.setPrototypeOf(this, CertificateError.prototype)
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
export * from './AuthorizeError'
|
||||
export * from './CertificateError'
|
||||
export * from './ComputeJobExecutionError'
|
||||
export * from './ErrorResponse'
|
||||
export * from './InternalServerError'
|
||||
export * from './InvalidJsonError'
|
||||
export * from './JobExecutionError'
|
||||
export * from './JobStatePollError'
|
||||
export * from './LoginRequiredError'
|
||||
export * from './NotFoundError'
|
||||
export * from './ErrorResponse'
|
||||
export * from './NoSessionStateError'
|
||||
export * from './RootFolderNotFoundError'
|
||||
export * from './JsonParseArrayError'
|
||||
export * from './LoginRequiredError'
|
||||
export * from './NoSessionStateError'
|
||||
export * from './NotFoundError'
|
||||
export * from './RootFolderNotFoundError'
|
||||
export * from './WeboutResponseError'
|
||||
export * from './InvalidJsonError'
|
||||
|
||||
Reference in New Issue
Block a user