fix: hydrate camera popup from GET /api/cameras/{id} #9

Merged
sirius merged 1 commit from fix/camera-popup-hydrate into master 2026-08-28 20:09:30 -04:00
Owner

Summary

Camera list payload is slim (no URLs). Popups were rendered from that row, so YouTube thumbs had no video id (youtube id missing) and never embedded.

Popup now fetches GET /api/cameras/{id} and builds the player from the full row (HLS / YouTube / HTTP).

Test

pytest tests/test_camera_popup_contract.py tests/test_map_payloads.py -q

Verify

Zoom past 4, click a camera pin. YouTube should embed; HLS should hit /hls.m3u8.

## Summary Camera list payload is slim (no URLs). Popups were rendered from that row, so YouTube thumbs had no video id (`youtube id missing`) and never embedded. Popup now fetches `GET /api/cameras/{id}` and builds the player from the full row (HLS / YouTube / HTTP). ## Test `pytest tests/test_camera_popup_contract.py tests/test_map_payloads.py -q` ## Verify Zoom past 4, click a camera pin. YouTube should embed; HLS should hit `/hls.m3u8`.
sirius added 1 commit 2026-08-28 20:03:15 -04:00
List payload is slim (no URLs). YouTube thumbs need source_url from the
detail endpoint, so the popup fetches the full row before rendering.
sirius merged commit eb883f0801 into master 2026-08-28 20:09:30 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sirius/osint-dashboard#9
No description provided.