Delete notification
DELETE/company/notifications/:id
Elimina permanentemente una notificación del sistema. Esta acción es irreversible y libera espacio en la base de datos.
Objetivo
Permitir a las empresas gestionar sus notificaciones eliminando aquellas que no necesitan mantener, permitiendo una limpieza controlada del histórico de alertas.
Casos de uso
- Limpieza de notificaciones antiguas: Eliminar notificaciones históricas no relevantes
- Eliminación individual: Cuando el usuario decide borrar una notificación específica
- Gestión de almacenamiento: Reducir el tamaño de la base de datos eliminando registros innecesarios
- Eliminación después de acción: Borrar notificaciones después de completar la acción asociada
Flujo de eliminación
flowchart TD
A[DELETE /{id}] --> B{ID Provided?}
B -->|No| C[Check Body]
B -->|Yes| D[Use Path ID]
C -->|Found| E[Use Body ID]
C -->|Not Found| F[Check Query]
F -->|Found| G[Use Query ID]
F -->|Not Found| H[400 Bad Request]
D --> I{User Authenticated?}
E --> I
G --> I
I -->|No| J[404 USER_NOT_FOUND]
I -->|Yes| K{Company Exists?}
K -->|No| L[401 CIA_NOT_FOUND]
K -->|Yes| M{Notification Exists?}
M -->|No| N[404 NOTIFICATION_NOT_FOUND]
M -->|Yes| O[Delete Notification]
O --> P[Permanent Deletion]
P --> Q[Return Deleted Notification - 200]
Flexibilidad de parámetros
El ID de la notificación puede enviarse de tres formas (en orden de prioridad):
- Path parameter (recomendado):
/company/notifications/{id} - Query parameter:
/company/notifications/{id}?id={id}(no recomendado, redundante) - Request body:
{ "id": "{id}" }(alternativa para某些 clientes)
El sistema verifica en este orden: body → query → params
Impacto de la eliminación
- Permanente: La notificación no se puede recuperar
- Inmediata: La eliminación se efectúa al momento de la llamada
- Sin rollback: No hay papelera de reciclaje ni restauración
- Desindexación: La notificación desaparece de todas las consultas
Consideraciones
- Se recomienda implementar una confirmación en el cliente antes de llamar al endpoint
- La eliminación no afecta al objeto relacionado (subasta, entrega, etc.)
- Solo se elimina el registro de notificación
- Para eliminaciones masivas, considerar implementar un endpoint batch
- Esta operación está destinada a mantenimiento de notificaciones, no a operaciones frecuentes
Notas importantes
- Solo se pueden eliminar notificaciones que existen en el sistema
- No se valida que la notificación pertenezca a la empresa del usuario (por diseño actual)
- La eliminación es permanente e irreversible
- No hay límite de cuántas notificaciones se pueden eliminar
- La operación es atómica: o se elimina completamente o falla
Errores
- 401 CIA_NOT_FOUND: El usuario no tiene una empresa asociada
- 404 USER_NOT_FOUND: El token no corresponde a un usuario válido
- 404 NOTIFICATION_NOT_FOUND: El ID no corresponde a una notificación existente
Request
Responses
- 200
- 401
- 404
Notificación eliminada exitosamente.
La respuesta contiene la notificación tal como existed antes de ser eliminada. Esta información puede ser útil para:
- Confirmar qué se eliminó
- Actualizar la UI localmente
- Logging/auditoría
No autorizado. El usuario no tiene una empresa asociada.
CIA_NOT_FOUND:
- El usuario autenticado no tiene una empresa asignada
- La empresa fue desactivada o eliminada
Recurso no encontrado. Puede ser por dos razones:
USER_NOT_FOUND:
- El token contiene un ID de usuario que no existe
NOTIFICATION_NOT_FOUND:
- El ID proporcionado no corresponde a ninguna notificación
- La notificación ya fue eliminada previamente