API — ManoAyuda
Endpoints públicos para integración con otros sistemas de respuesta a emergencias. Autenticación vía Supabase Auth (JWT Bearer token).
GET
/api/resourcesLista todos los recursos activos (no expirados).
Response: Array de Resource
{
id: "uuid",
type: "offer" | "need",
category: string,
city: string,
lat?: number,
lng?: number,
contact_info?: string,
trust_score: number,
is_verified_mod: boolean,
created_at: string (ISO),
expires_at: string (ISO)
}POST
/api/resourcesCrea un nuevo recurso (requiere autenticación).
Headers: Authorization: Bearer {token}
Body:
{
type: "offer" | "need",
category: string,
city: string,
lat?: number,
lng?: number,
contact_info?: string
}POST
/api/ping/{id}/confirmConfirma que un recurso sigue activo/válido.
Response: { ok: boolean }
POST
/api/ping/{id}/renewRenueva un recurso propio (+4h). Requiere ser el owner.
Headers: Authorization: Bearer {token}
Response: { ok: boolean }
Notas
- La API está servida por Cloudflare Workers en el mismo dominio.
- Los tokens JWT se obtienen vía Supabase Auth (email anónimo o OAuth).
- Recursos expirados (mayores a 24h) no se devuelven en listados.
- Las coordenadas
lat/lngson opcionales y se usan para el mapa.