From 3fb90cf1c966b52f3d216c929bb5bf6c189c6d6a Mon Sep 17 00:00:00 2001 From: SepehrYahyaee <7heycallmegray@gmail.com> Date: Sun, 10 May 2026 14:04:11 +0330 Subject: [PATCH] YARA-886 --- src/expert-claim/expert-claim.service.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/expert-claim/expert-claim.service.ts b/src/expert-claim/expert-claim.service.ts index cd75ca8..bc4c707 100644 --- a/src/expert-claim/expert-claim.service.ts +++ b/src/expert-claim/expert-claim.service.ts @@ -239,13 +239,15 @@ export class ExpertClaimService { } /** - * Build a deep-cloned `evaluation` payload with resolved `signLink`s for the - * fields that carry a user signature: + * Build a deep-cloned `evaluation` payload with resolved file URLs the + * front-end can render directly: * * - `damageExpertReply.userComment.signLink` * - `damageExpertReplyFinal.userComment.signLink` * - `ownerInsurerApproval.signLink` * - `ownerPricedPartsApproval.signLink` + * - `damageExpertReply.parts[i].factorLink` (ObjectId → URL) + * - `damageExpertReplyFinal.parts[i].factorLink` (ObjectId → URL) * * Returns `undefined` when there's no evaluation to enrich. */ @@ -255,16 +257,21 @@ export class ExpertClaimService { if (!evaluation || typeof evaluation !== "object") return undefined; const ev = JSON.parse(JSON.stringify(evaluation)) as Record; - const enrichReplyUserComment = async (key: string) => { + const enrichReply = async (key: string) => { const reply = ev[key] as Record | undefined; - const uc = reply?.userComment as Record | undefined; + if (!reply) return; + const uc = reply.userComment as Record | undefined; if (uc?.signDetailId != null) { const signLink = await this.claimSignLinkFromId(uc.signDetailId); - (reply as Record).userComment = { ...uc, signLink }; + reply.userComment = { ...uc, signLink }; } + // Resolve each `parts[].factorLink` ObjectId to a downloadable URL. + // `populateFactorLinks` mutates in place — safe here because `ev` was + // deep-cloned via JSON above, so we never touch the live mongoose doc. + await this.populateFactorLinks(reply); }; - await enrichReplyUserComment("damageExpertReply"); - await enrichReplyUserComment("damageExpertReplyFinal"); + await enrichReply("damageExpertReply"); + await enrichReply("damageExpertReplyFinal"); const enrichApproval = async (key: string) => { const o = ev[key] as Record | undefined;