Stanze
Gestione delle stanze. Le operazioni riservate al proprietario richiedono una sessione utente (JWT);
un token API della stanza con read può leggere i metadati di una stanza ma non può eseguire operazioni
da proprietario.
Creare una stanza
Sezione intitolata “Creare una stanza”POST /api/rooms/:roomIdAuthorization: Bearer <jwt>Content-Type: application/jsonLa prima richiesta autenticata per una stanza inesistente la crea e rende il chiamante il
proprietario. :roomId deve essere di esattamente 10 caratteri fra [A-Za-z0-9_-]. I campi del
corpo sono facoltativi.
{ "success": true, "room": { "roomId": "abc123", "createdBy": "auth0|123456", "createdAt": 1700000000000 }, "isNewRoom": true}Ottenere i metadati di una stanza
Sezione intitolata “Ottenere i metadati di una stanza”GET /api/rooms/:roomIdAuthorization: Bearer <token> (optional for public rooms)Restituisce i conteggi e, per i membri autenticati, userRole e hasAccess. Leggibile con un token
read.
Ottenere le informazioni della stanza (rotta della mappa)
Sezione intitolata “Ottenere le informazioni della stanza (rotta della mappa)”GET /api/rooms/:roomId/infoMetadati usati dalla rotta della mappa. Le stanze pubbliche sono leggibili senza autenticazione; quelle
private restituiscono requiresAuth: true ai non membri. Campi rilevanti: isPublic,
presentationIsPublic, autoZoomEnabled, defaultViewLat/Lng/Zoom, defaultTheme,
defaultBaseLayer.
Cambiare la visibilità pubblica
Sezione intitolata “Cambiare la visibilità pubblica”PATCH /api/rooms/:roomId/public # body: { "isPublic": true } — ownerPATCH /api/rooms/:roomId/presentation/public # body: { "isPublic": true } — owner or editorIl primo rende l’intera stanza consultabile pubblicamente; il secondo rende pubblica solo la presentazione.
Istantanea della presentazione
Sezione intitolata “Istantanea della presentazione”GET /api/rooms/:roomId/presentationRestituisce un’istantanea limitata alla presentazione (gli oggetti referenziati dalle diapositive salvate). Le presentazioni pubbliche sono leggibili senza autenticazione anche quando la stanza è privata.
Camera e valori predefiniti di ingresso
Sezione intitolata “Camera e valori predefiniti di ingresso”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"}Invia null per defaultView/defaultTheme/defaultBaseLayer per azzerare un valore salvato. Valori
validi per defaultBaseLayer: osm, carto, voyager, satellite, swisstopo, swissimage.
Impostazioni della cronologia
Sezione intitolata “Impostazioni della cronologia”PATCH /api/rooms/:roomId/timeline-settings — ownerCampi facoltativi: groupingMode (none/day/month/year), showMarkersOnly,
showAdditionsOnly, dateDisplayMode (event/creation), dateTimeFormat (dmy/mdy/iso),
sliderMode (past/current/future).
Verificare un permesso
Sezione intitolata “Verificare un permesso”GET /api/rooms/:roomId/permissions?action=<view|edit|delete|invite|manage_members|delete_room>{ "hasPermission": true, "role": "owner" }Svuotare o eliminare una stanza
Sezione intitolata “Svuotare o eliminare una stanza”POST /api/rooms/:roomId/clear — owner (removes all content, keeps the room)DELETE /api/rooms/:roomId — owner (deletes the room entirely)
