Salta ai contenuti
IT

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.

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

La 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
}
GET /api/rooms/:roomId
Authorization: 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/info

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

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

Il primo rende l’intera stanza consultabile pubblicamente; il secondo rende pubblica solo la presentazione.

GET /api/rooms/:roomId/presentation

Restituisce un’istantanea limitata alla presentazione (gli oggetti referenziati dalle diapositive salvate). Le presentazioni pubbliche sono leggibili senza autenticazione anche quando la stanza è privata.

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"
}

Invia null per defaultView/defaultTheme/defaultBaseLayer per azzerare un valore salvato. Valori validi per defaultBaseLayer: osm, carto, voyager, satellite, swisstopo, swissimage.

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

Campi facoltativi: 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)