Salta ai contenuti

API: Account

Tutti gli endpoint di questa sezione operano sull’utente attualmente connesso.

GET /api/me
{
"id": "019f7462-ac2a-73e3-ab40-be2e43f943f9",
"email": "greta@example.com",
"firstName": "Greta",
"lastName": "Lengl",
"avatarUrl": "/api/avatars/019f7462-ac2a-73e3-ab40-be2e43f943f9?v=3",
"locale": "de",
"createdAt": "2025-11-02T09:14:52Z"
}

createdAt è il momento in cui l’account è stato creato.

PUT /api/me/profile
{ "firstName": "Greta", "lastName": "Lengl" }

Restituisce 204. Errori: 400 quando uno dei due campi è vuoto.

PUT /api/me/password
{ "currentPassword": "…", "newPassword": "…" }

Restituisce 204; tutte le altre sessioni vengono disconnesse. Errori: 403 quando la password attuale è sbagliata, 400 quando la nuova password non è valida (8–72 caratteri).

POST /api/me/email
{ "newEmail": "new@example.com" }

Restituisce 202 in ogni caso — il codice di conferma a 6 cifre viene inviato solo quando l’indirizzo è effettivamente utilizzabile (anti-enumerazione: la risposta non rivela mai se un indirizzo è già in uso). Errori: 400 per un indirizzo malformato.

POST /api/me/email/confirm
{ "code": "123456" }

Restituisce 204: l’indirizzo email viene cambiato e tutte le altre sessioni vengono disconnesse. Errori: 400 per un codice non valido o scaduto (i codici scadono dopo 15 minuti).

PUT /api/me/push-tokens
{ "platform": "IOS", "token": "<raw APNs device token>" }

Restituisce 204. Idempotente — registrare un token già noto non ha alcun effetto, e un token registrato per ultimo da un altro account passa al chiamante (un dispositivo ceduto non deve mai ricevere le notifiche di qualcun altro). Piattaforme: IOS (APNs) e ANDROID (FCM). Errori: 400 per un token vuoto o troppo lungo.

DELETE /api/me/push-tokens/{token}

Restituisce 204, anche quando non c’è alcuna corrispondenza. Viene rimossa solo la registrazione del chiamante. I token dei dispositivi vengono inoltre eliminati automaticamente quando Apple li segnala come non più validi, e cancellati insieme all’account.

GET /api/me/export

Restituisce un documento JSON con i dati dell’account e tutti i contenuti creati dall’utente, consegnato come download (Content-Disposition: attachment) — portabilità dei dati secondo il GDPR.

POST /api/me/delete
{ "password": "…" }

Restituisce 204 — l’account viene eliminato definitivamente: lo spazio di lavoro personale, gli allegati e il profilo vengono cancellati; le attività di cui l’utente è autore negli spazi condivisi di altre persone restano, attribuite a un «Utente inattivo» riservato. Errori: 403 quando la password è sbagliata, 409 finché l’utente possiede ancora spazi di lavoro condivisi (eliminali o trasferisci prima la proprietà).