forked from Shared/esg
parsian done
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
} from '../../common/helpers/http-client.helper';
|
||||
import { InquiryType } from '../../common/enums/inquiry-type.enum';
|
||||
import { ProviderName } from '../../common/enums/provider-name.enum';
|
||||
import { NormalizedErrorDto } from '../../common/dto/normalized-error.dto';
|
||||
import { AmitisAuthServiceConfig } from '../../config/configuration';
|
||||
import { GeneralTokenDocument } from '../schemas/general-token.schema';
|
||||
import { GeneralTokenService } from '../services/general-token.service';
|
||||
@@ -201,10 +202,21 @@ export class AmitisProvider {
|
||||
fallbackRefreshToken?: string,
|
||||
): AmitisAuthToken {
|
||||
const body = responseBody.data ?? responseBody;
|
||||
const loginStatus = body.LoginStatus;
|
||||
|
||||
if (body.IsSucceed === false) {
|
||||
throw new Error(
|
||||
`AMITIS login rejected (LoginStatus=${body.LoginStatus ?? 'unknown'})`,
|
||||
if (loginStatus === 2 || body.IsSucceed === false) {
|
||||
throw this.createAuthError(
|
||||
loginStatus === 2
|
||||
? 'AMITIS username or password is invalid for this service account'
|
||||
: `AMITIS login rejected (LoginStatus=${loginStatus ?? 'unknown'})`,
|
||||
loginStatus === 2 ? 'AUTH_INVALID_CREDENTIALS' : 'AUTH_REJECTED',
|
||||
);
|
||||
}
|
||||
|
||||
if (loginStatus !== undefined && loginStatus !== 1 && body.IsSucceed !== true) {
|
||||
throw this.createAuthError(
|
||||
`AMITIS login rejected (LoginStatus=${loginStatus})`,
|
||||
'AUTH_REJECTED',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -255,7 +267,23 @@ export class AmitisProvider {
|
||||
return `${ProviderName.AMITIS}:${providerName}:${inquiryType}`;
|
||||
}
|
||||
|
||||
private createAuthError(message: string, code: string): Error {
|
||||
const normalized: NormalizedErrorDto = {
|
||||
code,
|
||||
message,
|
||||
providerMessage: message,
|
||||
providerCode: code,
|
||||
};
|
||||
const err = new Error(message);
|
||||
(err as Error & { normalizedError: NormalizedErrorDto }).normalizedError = normalized;
|
||||
return err;
|
||||
}
|
||||
|
||||
private toAuthError(message: string, error: unknown): Error {
|
||||
if (error instanceof Error && 'normalizedError' in error) {
|
||||
return error;
|
||||
}
|
||||
|
||||
if (error instanceof AxiosError) {
|
||||
const status = error.response?.status ?? 'NETWORK_ERROR';
|
||||
const body =
|
||||
|
||||
Reference in New Issue
Block a user