Merge pull request 'Better error handling for different insurers' (#297) from s.yahyaee/yara724-api:main into main

Reviewed-on: Yara724/api#297
This commit is contained in:
2026-09-07 15:16:31 +03:30

View File

@@ -158,6 +158,16 @@ export class RequestManagementService {
};
}
/** Keep eligibility rejections distinct from an unavailable CAR_BODY provider. */
private throwCarBodyInquiryFailure(err: unknown): never {
if (err instanceof ForbiddenException) throw err;
throw new HttpException(
"Car body inquiry failed",
HttpStatus.BAD_REQUEST,
);
}
private stepKeyToPartyRole(stepKey: WorkflowStep): PartyRole {
if (String(stepKey).startsWith("FIRST_")) return PartyRole.FIRST;
if (String(stepKey).startsWith("SECOND_")) return PartyRole.SECOND;
@@ -1563,10 +1573,7 @@ export class RequestManagementService {
await this.blameRequestDbService.findByIdAndUpdate(req._id, {
$set: { inquiries: req.inquiries },
});
throw new HttpException(
"Car body inquiry failed",
HttpStatus.BAD_REQUEST,
);
this.throwCarBodyInquiryFailure(err);
}
// Raw + mapped stored under vehicle
@@ -2041,10 +2048,7 @@ export class RequestManagementService {
await this.blameRequestDbService.findByIdAndUpdate(req._id, {
$set: { inquiries: req.inquiries },
});
throw new HttpException(
"Car body inquiry failed",
HttpStatus.BAD_REQUEST,
);
this.throwCarBodyInquiryFailure(err);
}
}
@@ -3174,6 +3178,7 @@ export class RequestManagementService {
);
} catch (er) {
this.logger.error(er);
if (er instanceof HttpException) throw er;
throw new InternalServerErrorException(
"Failed to update request with plate details.",
);
@@ -7369,6 +7374,7 @@ export class RequestManagementService {
stepsToAdd.push(StepsEnum.F_addPlate);
} catch (plateError) {
this.logger.error("Error processing first party plate:", plateError);
if (plateError instanceof HttpException) throw plateError;
throw new InternalServerErrorException(
"Failed to process first party plate information",
);
@@ -9009,9 +9015,7 @@ export class RequestManagementService {
{},
err,
);
throw new BadRequestException(
`CAR_BODY inquiry failed: ${err?.message || "استعلام در دسترس نیست"}`,
);
this.throwCarBodyInquiryFailure(err);
}
}
@@ -9861,9 +9865,7 @@ export class RequestManagementService {
{},
err,
);
throw new BadRequestException(
`CAR_BODY VIN inquiry failed: ${err?.message || "استعلام در دسترس نیست"}`,
);
this.throwCarBodyInquiryFailure(err);
}
}