From d694001a8221068c13c500946d85a07e561a6fae Mon Sep 17 00:00:00 2001 From: Kevin Cantrell Date: Wed, 19 Nov 2025 13:38:03 +0900 Subject: [PATCH] After normalizing timestamps, the PDF route now filters deviceData to keep only entries whose timestamp (parsed via parseDeviceInstant) falls between userStart and userEnd. --- src/routes/api/devices/[devEui]/pdf/+server.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/routes/api/devices/[devEui]/pdf/+server.ts b/src/routes/api/devices/[devEui]/pdf/+server.ts index d566d599..a8151403 100644 --- a/src/routes/api/devices/[devEui]/pdf/+server.ts +++ b/src/routes/api/devices/[devEui]/pdf/+server.ts @@ -207,6 +207,21 @@ export const GET: RequestHandler = async ({ params, url, locals: { supabase } }) firstNormalized: deviceData[0]?.created_at, lastNormalized: deviceData[deviceData.length - 1]?.created_at }); + const windowStart = userStart.toMillis(); + const windowEnd = userEnd.toMillis(); + const beforeFilterCount = deviceData.length; + deviceData = deviceData.filter((record) => { + const dt = parseDeviceInstant(record.created_at as string, timezoneParam); + const ms = dt.toMillis(); + return ms >= windowStart && ms <= windowEnd; + }); + console.log('PDF report filtered dataset', { + devEui, + beforeFilterCount, + afterFilterCount: deviceData.length, + firstAfterFilter: deviceData[0]?.created_at, + lastAfterFilter: deviceData[deviceData.length - 1]?.created_at + }); if (!alertPoints.length) { alertPoints = await deviceDataService.getAlertPointsForDevice(devEui); }