Zum Inhalt springen
DE

Räume

Raumverwaltung. Vorgänge, die dem Eigentümer vorbehalten sind, brauchen eine Benutzersitzung (JWT); ein Raum-API-Token mit read kann die Metadaten eines Raums lesen, aber keine Eigentümer-Vorgänge ausführen.

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

Die erste authentifizierte Anfrage für einen nicht existierenden Raum legt ihn an und macht die aufrufende Person zum Eigentümer. :roomId muss aus genau 10 Zeichen aus [A-Za-z0-9_-] bestehen. Die Felder im Rumpf sind optional.

{
"success": true,
"room": { "roomId": "abc123", "createdBy": "auth0|123456", "createdAt": 1700000000000 },
"isNewRoom": true
}
GET /api/rooms/:roomId
Authorization: Bearer <token> (optional for public rooms)

Liefert Zählwerte und, für authentifizierte Mitglieder, userRole und hasAccess. Mit einem read-Token lesbar.

GET /api/rooms/:roomId/info

Metadaten, die die Kartenroute verwendet. Öffentliche Räume sind ohne Authentifizierung lesbar; private Räume liefern Nichtmitgliedern requiresAuth: true. Bemerkenswerte Felder: 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

Das erste macht den ganzen Raum öffentlich einsehbar; das zweite nur die Präsentation.

GET /api/rooms/:roomId/presentation

Liefert einen Schnappschuss nur der Präsentation (die von gespeicherten Folien referenzierten Objekte). Öffentliche Präsentationen sind ohne Authentifizierung lesbar, selbst wenn der Raum privat ist.

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

Senden Sie null für defaultView/defaultTheme/defaultBaseLayer, um einen gespeicherten Standard zu löschen. Gültig für defaultBaseLayer: osm, carto, voyager, satellite, swisstopo, swissimage.

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

Optionale Felder: 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)