forked from Shared/esg
update the esg
This commit is contained in:
@@ -128,6 +128,7 @@ export abstract class BaseProvider<TRequest = unknown, TResponse = unknown>
|
||||
providerCode: partial.providerCode,
|
||||
providerTrackingCode: partial.providerTrackingCode,
|
||||
details: partial.details,
|
||||
conflict: partial.conflict,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -135,7 +136,7 @@ export abstract class BaseProvider<TRequest = unknown, TResponse = unknown>
|
||||
providerMessage?: string,
|
||||
providerCode?: string,
|
||||
fallbackMessage = 'Provider request failed',
|
||||
extras?: Pick<NormalizedErrorDto, 'providerTrackingCode' | 'details'>,
|
||||
extras?: Pick<NormalizedErrorDto, 'providerTrackingCode' | 'details' | 'conflict'>,
|
||||
): Error {
|
||||
const message = providerMessage?.trim() || fallbackMessage;
|
||||
const code = providerCode?.trim() || 'PROVIDER_ERROR';
|
||||
|
||||
@@ -81,6 +81,7 @@ interface ParsianPolicyByNationalCodePayload extends LegacyInquiryPayload {
|
||||
}
|
||||
|
||||
interface ParsianPolicyByPlatePayload extends LegacyInquiryPayload {
|
||||
nationalCode?: string;
|
||||
plk1?: string;
|
||||
plk2?: string;
|
||||
plk3?: string;
|
||||
@@ -334,6 +335,7 @@ export class ParsianProvider extends BaseProvider<LegacyInquiryPayload, LegacyIn
|
||||
private async inquirePolicyByPlate(
|
||||
payload: ParsianPolicyByPlatePayload,
|
||||
): Promise<{ raw: unknown }> {
|
||||
const nationalCode = this.getRequiredString(payload.nationalCode, 'nationalCode');
|
||||
const plk1 = this.getRequiredString(payload.plk1, 'plk1');
|
||||
const plk2 = this.getRequiredString(payload.plk2, 'plk2');
|
||||
const plk3 = this.getRequiredString(payload.plk3, 'plk3');
|
||||
@@ -344,8 +346,24 @@ export class ParsianProvider extends BaseProvider<LegacyInquiryPayload, LegacyIn
|
||||
{ Plk1: plk1, Plk2: plk2, Plk3: plk3, PlkSrl: plksrl },
|
||||
);
|
||||
|
||||
const policyNationalId = policy.NtnlId?.trim() ?? '';
|
||||
if (!policyNationalId || !this.nationalIdsMatch(nationalCode, policyNationalId)) {
|
||||
throw this.formatProviderError(
|
||||
'عدم تطابق اطلاعات',
|
||||
'INQUIRY_NO_MATCH',
|
||||
undefined,
|
||||
{
|
||||
conflict: {
|
||||
nationalCode,
|
||||
NtnlId: policyNationalId,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
raw: {
|
||||
nationalCode,
|
||||
plk1,
|
||||
plk2,
|
||||
plk3,
|
||||
@@ -355,6 +373,10 @@ export class ParsianProvider extends BaseProvider<LegacyInquiryPayload, LegacyIn
|
||||
};
|
||||
}
|
||||
|
||||
private nationalIdsMatch(requested: string, fromPolicy: string): boolean {
|
||||
return requested.trim().padStart(10, '0') === fromPolicy.trim().padStart(10, '0');
|
||||
}
|
||||
|
||||
private async callCarPolicySoap(
|
||||
inquiryType: InquiryType,
|
||||
methodName: string,
|
||||
|
||||
Reference in New Issue
Block a user