forked from Yara724/api
Merge pull request 'fixed default values' (#300) from s.hajizadeh/yara724api:main into main
Reviewed-on: Yara724/api#300
This commit is contained in:
@@ -207,6 +207,7 @@ import {
|
||||
import {
|
||||
asObjectRecord,
|
||||
collectPartyVinCandidates,
|
||||
fanavaranIdOrConfigDefault,
|
||||
normalizeVin,
|
||||
parseFanavaranId,
|
||||
pickFanavaranPlaqueLookupFields,
|
||||
@@ -4254,26 +4255,34 @@ export class ClaimRequestManagementService {
|
||||
const inquiryPlaque = pickFanavaranPlaqueLookupFields(
|
||||
asObjectRecord(inquiryMapped) ?? asObjectRecord(inquiryRaw),
|
||||
);
|
||||
const plaqueKindId = this.firstPositiveFanavaranId(
|
||||
const plaqueKindFromApi = this.firstPositiveFanavaranId(
|
||||
apiPlaque.kindId,
|
||||
inquiryPlaque.kindId,
|
||||
cachedDamage.plaqueKindId,
|
||||
lastDamagePayload?.PlaqueKindId,
|
||||
);
|
||||
const plaqueSampleId = this.firstPositiveFanavaranId(
|
||||
const plaqueSampleFromApi = this.firstPositiveFanavaranId(
|
||||
apiPlaque.sampleId,
|
||||
inquiryPlaque.sampleId,
|
||||
cachedDamage.plaqueSampleId,
|
||||
lastDamagePayload?.PlaqueSampleId,
|
||||
);
|
||||
if (apiPlaque.kindId == null && plaqueKindId != null) {
|
||||
const plaqueKindId = fanavaranIdOrConfigDefault(
|
||||
plaqueKindFromApi,
|
||||
input.defaults.PlaqueKindId,
|
||||
);
|
||||
const plaqueSampleId = fanavaranIdOrConfigDefault(
|
||||
plaqueSampleFromApi,
|
||||
input.defaults.PlaqueSampleId,
|
||||
);
|
||||
if (plaqueKindFromApi == null) {
|
||||
this.logger.log(
|
||||
`[buildFanavaranDamageCasePayload] PlaqueKindId API miss; using DB value ${plaqueKindId}`,
|
||||
`[buildFanavaranDamageCasePayload] PlaqueKindId API miss; using config default ${plaqueKindId}`,
|
||||
);
|
||||
}
|
||||
if (apiPlaque.sampleId == null && plaqueSampleId != null) {
|
||||
if (plaqueSampleFromApi == null) {
|
||||
this.logger.log(
|
||||
`[buildFanavaranDamageCasePayload] PlaqueSampleId API miss; using DB value ${plaqueSampleId}`,
|
||||
`[buildFanavaranDamageCasePayload] PlaqueSampleId API miss; using config default ${plaqueSampleId}`,
|
||||
);
|
||||
}
|
||||
const builtYear =
|
||||
@@ -4385,6 +4394,12 @@ export class ClaimRequestManagementService {
|
||||
null,
|
||||
);
|
||||
}
|
||||
if (accidentVehicleUsedId == null) {
|
||||
accidentVehicleUsedId = input.defaults.AccidentVehicleUsedId;
|
||||
this.logger.log(
|
||||
`[buildFanavaranDamageCasePayload] AccidentVehicleUsedId API miss; using config default ${accidentVehicleUsedId}`,
|
||||
);
|
||||
}
|
||||
|
||||
this.logger.log(
|
||||
`[buildFanavaranDamageCasePayload] Final DriverId=${driverFanavaranId ?? "NULL"} for nationalCode=${pickPersonNationalCode(person) ?? "MISSING"}, ` +
|
||||
@@ -5187,7 +5202,8 @@ export class ClaimRequestManagementService {
|
||||
persistPayload?: boolean;
|
||||
/**
|
||||
* Re-run VIN inquiry / vehicle GET for AccidentVehicleUsedId.
|
||||
* Submit always sets this so Mongo tenant default 1 cannot be reused.
|
||||
* Submit always re-inquires. If the API still returns nothing, the
|
||||
* tenant config default is used.
|
||||
*/
|
||||
forceRefreshUsedId?: boolean;
|
||||
},
|
||||
@@ -5402,6 +5418,14 @@ export class ClaimRequestManagementService {
|
||||
}
|
||||
}
|
||||
|
||||
if (parseFanavaranId(payload.AccidentVehicleUsedId) == null) {
|
||||
payload.AccidentVehicleUsedId =
|
||||
profile.defaults.AccidentVehicleUsedId;
|
||||
this.logger.log(
|
||||
`${logPrefix} AccidentVehicleUsedId API miss; using config default ${payload.AccidentVehicleUsedId}`,
|
||||
);
|
||||
}
|
||||
|
||||
if (persistPayload) {
|
||||
await this.claimCaseDbService.findByIdAndUpdate(claimCaseId, {
|
||||
$set: {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
collectPartyVinCandidates,
|
||||
fanavaranIdOrConfigDefault,
|
||||
filterPoliciesByLine,
|
||||
insuranceLineLabel,
|
||||
parseLastCarPolicyInput,
|
||||
@@ -172,6 +173,12 @@ describe("fanavaran last car policy", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("uses tenant config default when the API id is missing", () => {
|
||||
expect(fanavaranIdOrConfigDefault(15, 8)).toBe(15);
|
||||
expect(fanavaranIdOrConfigDefault(null, 8)).toBe(8);
|
||||
expect(fanavaranIdOrConfigDefault(0, 10)).toBe(10);
|
||||
});
|
||||
|
||||
it("matches VIN against ChassisNo when VIN is empty", () => {
|
||||
expect(
|
||||
vehicleMatchesCar(
|
||||
|
||||
@@ -162,6 +162,14 @@ export function parseFanavaranId(value: unknown): number | null {
|
||||
return Number.isFinite(id) && id > 0 ? id : null;
|
||||
}
|
||||
|
||||
/** Live Fanavaran / cache id wins; tenant `fanavaranClientConfigs.defaults` if the API returned nothing. */
|
||||
export function fanavaranIdOrConfigDefault(
|
||||
resolved: unknown,
|
||||
configDefault: number,
|
||||
): number {
|
||||
return parseFanavaranId(resolved) ?? configDefault;
|
||||
}
|
||||
|
||||
export function asObjectRecord(value: unknown): Record<string, unknown> | null {
|
||||
if (!value || typeof value !== "object") {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user