Salta ai contenuti

API: Feed calendario

Ogni membro può trasformare una VISTA di attività — una lista o uno dei filtri intelligenti — in un feed iCalendar (RFC 5545) delle sue attività in sospeso con data di scadenza, rese come eventi di giornata intera. I feed contengono solo titoli e date — mai le descrizioni. I feed sono per utente E per vista.

Una vista si indirizza così:

Vista Valore di view
una lista list:{listId}
tutte le attività all
assegnate a me assignedToMe
non assegnate unassigned
scadute pastDue
in scadenza (prossimi 7 giorni) dueSoon

assignedToMe indica sempre il PROPRIETARIO del feed; le finestre di pastDue/dueSoon vengono valutate al momento della richiesta rispetto al giorno di calendario UTC.

POST /api/workspaces/{workspaceId}/calendar-feed
{ "view": "assignedToMe", "name": "Assigned to me" }

name è il nome visualizzato della vista nella lingua di chi chiama — viene congelato per i feed di filtro (i feed di lista rendono sempre il nome attuale della lista). Restituisce 201:

{ "token": "tdmcal_…", "path": "/api/calendar/tdmcal_…" }

Il token (256 bit casuali, prefisso tdmcal_) viene mostrato esattamente una volta — il server ne conserva solo l’hash. Generarlo di nuovo per la stessa vista lo RUOTA: il token precedente smette immediatamente di funzionare.

GET /api/workspaces/{workspaceId}/calendar-feed?view={view}

Restituisce { "active": true, "createdAt": "…" } — mai il token stesso.

DELETE /api/workspaces/{workspaceId}/calendar-feed?view={view}

Restituisce 204; idempotente.

GET /api/calendar/{token}

Senza autenticazione — il token è la credenziale. Serve text/calendar. L’autorizzazione viene ricontrollata a ogni richiesta: se il membro lascia lo spazio di lavoro, o la lista o l’account vengono eliminati, il feed risponde 404, come un token sconosciuto o ruotato.

GET /api/workspaces/{workspaceId}/calendar.ics?view={view}&name={name}

Autenticato tramite sessione; restituisce lo stesso documento iCalendar come allegato (name etichetta le viste di filtro). Un’istantanea — a differenza del feed, non si aggiorna mai.