diff --git a/app/routers/views.py b/app/routers/views.py index aeb2398..2c89f1c 100644 --- a/app/routers/views.py +++ b/app/routers/views.py @@ -73,12 +73,20 @@ async def _fetch_trips(vehicle_id: int, day: date) -> dict[str, Any]: # Continuous day track (GeoJSON LineString of every fix, in order) so the # frontend can draw one unbroken route under the per-trip coloured # segments — trip splits on reporting gaps no longer look like the - # vehicle teleported. + # vehicle teleported. Guarded by an existence check so the endpoint keeps + # working if the code is deployed before migration 24 lands. + track: Any = None await cur.execute( - "SELECT serve.fn_vehicle_day_track(%s, %s)", (vehicle_id, day) + "SELECT to_regprocedure('serve.fn_vehicle_day_track(bigint, date)') IS NOT NULL" ) - track_row = await cur.fetchone() - payload["day_track"] = track_row[0] if track_row and track_row[0] is not None else None + exists_row = await cur.fetchone() + if exists_row and exists_row[0]: + await cur.execute( + "SELECT serve.fn_vehicle_day_track(%s, %s)", (vehicle_id, day) + ) + track_row = await cur.fetchone() + track = track_row[0] if track_row else None + payload["day_track"] = track return payload