Aller au contenu
FR

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.

POST /api/rooms/:roomId
Authorization: Bearer <jwt>
Content-Type: application/json

La 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
}
GET /api/rooms/:roomId
Authorization: Bearer <token> (optional for public rooms)

Renvoie des décomptes et, pour les membres authentifiés, userRole et hasAccess. Lisible avec un jeton read.

GET /api/rooms/:roomId/info

Mé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.

PATCH /api/rooms/:roomId/public # body: { "isPublic": true } — owner
PATCH /api/rooms/:roomId/presentation/public # body: { "isPublic": true } — owner or editor

La première rend toute la salle consultable publiquement ; la seconde ne rend publique que la présentation.

GET /api/rooms/:roomId/presentation

Renvoie 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.

PATCH /api/rooms/:roomId/camera-settings — owner
Content-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.

PATCH /api/rooms/:roomId/timeline-settings — owner

Champs facultatifs : groupingMode (none/day/month/year), showMarkersOnly, showAdditionsOnly, dateDisplayMode (event/creation), dateTimeFormat (dmy/mdy/iso), sliderMode (past/current/future).

GET /api/rooms/:roomId/permissions?action=<view|edit|delete|invite|manage_members|delete_room>
{ "hasPermission": true, "role": "owner" }
POST /api/rooms/:roomId/clear — owner (removes all content, keeps the room)
DELETE /api/rooms/:roomId — owner (deletes the room entirely)