From ce579d1667d0153a3a87d80461230e79590782de Mon Sep 17 00:00:00 2001 From: enlineawork Date: Thu, 10 Sep 2026 20:59:42 -0300 Subject: [PATCH] fix(api): normalize field briefing planned date --- .../field-briefing.service.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/api-v3/src/act-administration/field-briefing.service.ts b/api-v3/src/act-administration/field-briefing.service.ts index 5b7f917..03df89c 100644 --- a/api-v3/src/act-administration/field-briefing.service.ts +++ b/api-v3/src/act-administration/field-briefing.service.ts @@ -36,6 +36,20 @@ export interface FieldBriefingAct { findings: FieldBriefingFinding[]; } +function toIsoDate(value: unknown): string { + const parsed = value instanceof Date + ? value + : value == null + ? new Date() + : new Date(String(value)); + + if (Number.isNaN(parsed.getTime())) { + throw new Error('La fecha planificada de la inspección no es válida'); + } + + return parsed.toISOString().slice(0, 10); +} + @Injectable() export class FieldBriefingService { constructor(private readonly dataSource: DataSource) {} @@ -67,7 +81,9 @@ export class FieldBriefingService { }); } - const plannedOn = String(visit.plannedStartAt ?? new Date().toISOString()).slice(0, 10); + // PostgreSQL/pg entrega los timestamptz como Date. String(date).slice(0, 10) + // produce textos como "Thu Sep 17", que PostgreSQL rechaza al castear a date. + const plannedOn = toIsoDate(visit.plannedStartAt); const rows = (await this.dataSource.query(` WITH prior_acts AS (