Salles
Gestion des salles. Les opérations réservées au propriétaire exigent une session utilisateur (JWT) ;
un jeton d’API de salle disposant de read peut lire les métadonnées d’une salle mais ne peut pas
effectuer d’opérations de propriétaire.
Créer une salle
Section intitulée « Créer une salle »POST /api/rooms/:roomIdAuthorization: Bearer <jwt>Content-Type: application/jsonLa première requête authentifiée pour une salle inexistante la crée et fait de l’appelant son
propriétaire. :roomId doit comporter exactement 10 caractères parmi [A-Za-z0-9_-]. Les champs du
corps sont facultatifs.
{ "success": true, "room": { "roomId": "abc123", "createdBy": "auth0|123456", "createdAt": 1700000000000 }, "isNewRoom": true}Obtenir les métadonnées d’une salle
Section intitulée « Obtenir les métadonnées d’une salle »GET /api/rooms/:roomIdAuthorization: Bearer <token> (optional for public rooms)Renvoie des décomptes et, pour les membres authentifiés, userRole et hasAccess. Lisible avec un
jeton read.
Obtenir les infos de salle (route de la carte)
Section intitulée « Obtenir les infos de salle (route de la carte) »GET /api/rooms/:roomId/infoMétadonnées utilisées par la route de la carte. Les salles publiques sont lisibles sans
authentification ; les salles privées renvoient requiresAuth: true aux non-membres. Champs notables :
isPublic, presentationIsPublic, autoZoomEnabled, defaultViewLat/Lng/Zoom, defaultTheme,
defaultBaseLayer.
Basculer la visibilité publique
Section intitulée « Basculer la visibilité publique »PATCH /api/rooms/:roomId/public # body: { "isPublic": true } — ownerPATCH /api/rooms/:roomId/presentation/public # body: { "isPublic": true } — owner or editorLa première rend toute la salle consultable publiquement ; la seconde ne rend publique que la présentation.
Instantané de présentation
Section intitulée « Instantané de présentation »GET /api/rooms/:roomId/presentationRenvoie un instantané limité à la présentation (les objets référencés par les diapositives enregistrées). Les présentations publiques sont lisibles sans authentification même quand la salle est privée.
Caméra et valeurs d’entrée par défaut
Section intitulée « Caméra et valeurs d’entrée par défaut »PATCH /api/rooms/:roomId/camera-settings — ownerContent-Type: application/json{ "autoZoomEnabled": false, "defaultView": { "lat": 47.5596, "lng": 7.5886, "zoom": 13 }, "defaultTheme": "light", "defaultBaseLayer": "carto"}Envoyez null pour defaultView/defaultTheme/defaultBaseLayer afin d’effacer une valeur
enregistrée. Valeurs valides pour defaultBaseLayer : osm, carto, voyager, satellite,
swisstopo, swissimage.
Réglages de la chronologie
Section intitulée « Réglages de la chronologie »PATCH /api/rooms/:roomId/timeline-settings — ownerChamps facultatifs : groupingMode (none/day/month/year), showMarkersOnly,
showAdditionsOnly, dateDisplayMode (event/creation), dateTimeFormat (dmy/mdy/iso),
sliderMode (past/current/future).
Vérifier une permission
Section intitulée « Vérifier une permission »GET /api/rooms/:roomId/permissions?action=<view|edit|delete|invite|manage_members|delete_room>{ "hasPermission": true, "role": "owner" }Vider ou supprimer une salle
Section intitulée « Vider ou supprimer une salle »POST /api/rooms/:roomId/clear — owner (removes all content, keeps the room)DELETE /api/rooms/:roomId — owner (deletes the room entirely)
