fix: R02 activity API contract — PaginatedActivity + all consumers (#1788956171115)

This commit is contained in:
ik
2026-09-09 20:58:42 +07:00
parent a37f9c4696
commit d962ba2f90
9 changed files with 85 additions and 45 deletions
+2 -2
View File
@@ -1,13 +1,13 @@
---
import ActivityCard from "../../components/ActivityCard.astro";
import Layout from "../../layouts/Layout.astro";
import { api, plural, type Activity, type DictionaryItem } from "../../lib/api";
import { api, plural, type Activity, type DictionaryItem, type PaginatedActivity } from "../../lib/api";
const { slug } = Astro.params;
let water: DictionaryItem | undefined, items: Activity[] = [], unavailable = false;
try {
const waters = await api<DictionaryItem[]>("/api/v1/waterbodies?limit=500");
water = waters.find(item => item.slug === slug);
if (water) items = await api<Activity[]>(`/api/v1/activity?hours=72&waterbody=${encodeURIComponent(water.slug)}&limit=100`);
if (water) { const paginated = await api<PaginatedActivity>(`/api/v1/activity?hours=72&waterbody=${encodeURIComponent(water.slug)}&limit=100`); items = paginated.items; }
} catch { unavailable = true; }
if (unavailable) {
Astro.response.status = 503;