Saltar al contenido principal

Mark notification as read

PUT 

/company/notifications/read/:id

Actualiza el estado de una notificación para marcarla como leída, registrando la fecha y hora actual de la lectura.

Objetivo

Permitir a las empresas marcar notificaciones como leídas para mantener un seguimiento preciso de las alertas pendientes y mejorar la experiencia de usuario.

Casos de uso

  • Interacción del usuario: Cuando el usuario hace clic en una notificación
  • Sincronización multi-dispositivo: Marcar como leída en todos los dispositivos
  • Lectura masiva: Marcar múltiples notificaciones en lote
  • Gestión de notificaciones: Actualización del estado desde el panel de notificaciones

Flujo de actualización

flowchart TD
A[PUT /read/{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[Update Notification]
O --> P[Set isRead: true]
P --> Q[Set readedAt: now]
Q --> R[Save to Database]
R --> S[Return Notification - 200]

Flexibilidad de parámetros

El ID de la notificación puede enviarse de tres formas (en orden de prioridad):

  1. Path parameter (recomendado): /company/notifications/read/{id}
  2. Query parameter: /company/notifications/read?id={id}
  3. Request body: { "id": "{id}" }

El sistema verifica en este orden: body → query → params

Campos actualizados

isRead: Se establece en true readedAt: Se establece con la fecha y hora actual del servidor

Notas importantes

  • La operación es idempotente: llamar al endpoint múltiples veces con el mismo ID no causa errores
  • Si la notificación ya estaba marcada como leída, se actualiza readedAt nuevamente
  • Solo se pueden marcar notificaciones que existen en el sistema
  • No se valida que la notificación pertenezca a la empresa del usuario (por diseño actual)
  • La fecha readedAt se establece en formato UTC del servidor

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

Notificación marcada como leída exitosamente