Delete notification
DELETE/company/notifications/:id
Elimina permanentemente una notificazione di sistema. Questa azione è irreversibile e libera spazio nel database.
Obiettivo
Consentire alle aziende di gestire le proprie notifiche eliminando quelle che non necessitano di mantenere, permettendo una pulizia controllata dello storico degli avvisi.
Casi d'uso
- Pulizia di notifiche obsolete: Eliminare notifiche storiche non rilevanti
- Eliminazione individuale: Quando l'utente decide di cancellare una notifica specifica
- Gestione dello storage: Ridurre la dimensione del database eliminando record non necessari
- Eliminazione dopo azione: Cancellare notifiche dopo aver completato l'azione associata
Flusso di eliminazione
flowchart TD
A[DELETE /{id}] --> B{ID Fornito?}
B -->|No| C[Controlla Body]
B -->|Sì| D[Usa ID del Path]
C -->|Trovato| E[Usa ID del Body]
C -->|Non Trovato| F[Controlla Query]
F -->|Trovato| G[Usa ID della Query]
F -->|Non Trovato| H[400 Bad Request]
D --> I{Utente Autenticato?}
E --> I
G --> I
I -->|No| J[404 USER_NOT_FOUND]
I -->|Sì| K{Azienda Esiste?}
K -->|No| L[401 CIA_NOT_FOUND]
K -->|Sì| M{Notifica Esiste?}
M -->|No| N[404 NOTIFICATION_NOT_FOUND]
M -->|Sì| O[Elimina Notifica]
O --> P[Eliminazione Permanente]
P --> Q[Ritorna Notifica Eliminata - 200]
Flessibilità dei parametri
L'ID della notifica può essere inviato in tre modi (in ordine di priorità):
- Path parameter (consigliato):
/company/notifications/{id} - Query parameter: `/
Request
Responses
- 200
- 401
- 404
Notifica eliminata con successo.
La risposta contiene la notifica così come esisteva prima di essere eliminata. Questa informazione può essere utile per:
- Confermare cosa è stato eliminato
- Aggiornare l'interfaccia utente localmente
- Logging/audit
Non autorizzato. L'utente non ha un'azienda associata.
CIA_NOT_FOUND:
- L'utente autenticato non ha un'azienda assegnata
- L'azienda è stata disattivata o eliminata
Risorsa non trovata. Può essere per due motivi:
USER_NOT_FOUND:
- Il token contiene un ID utente che non esiste
NOTIFICATION_NOT_FOUND:
- L'ID fornito non corrisponde a nessuna notifica
- La notifica è già stata eliminata in precedenza