Method | URI | Action |
---|---|---|
GET |
/notifications |
index |
GET |
/notifications/{id} |
show |
POST |
/notifications |
store |
DELETE |
/notifications/{id} |
delete |
GET |
/students/{id}/notifications |
index |
{
"id": 1,
"type": 1, // ver referencia de tipos
"title": "mi titulo",
"content": "Contenido de mi notificación",
"attachment": null, // (String) Archivo adjunto subido
"created_at": "2020-04-15 16:54:54",
"updated_at": "2020-04-15 17:06:31",
"sender_user_id": 1 // ID del usuario que envio la notificación
}
Type | Value | Description |
---|---|---|
Todos los usuarios | 1 |
Esta notificación sera enviada a todos los usuarios |
Todos los administradores | 2 |
Esta notificación sera enviada a todos los administradores |
Todos los coordinadores | 3 |
Esta notificación sera enviada a todos los coordinadores |
Todos los profesores | 4 |
Esta notificación sera enviada a todos los profesores |
Todos los estudiantes | 5 |
Esta notificación sera enviada a todos los estudiantes |
Notificación automática | 6 |
Notificación generada automáticamente por el sistema según acciones |
Notificación individual | 7 |
Esta notificación sera enviada a un usuario especifico |
Estudiantes de una sección | 8 |
Esta notificación fue enviada a estudiantes de una sección |
Estudiantes de una materia/seccion | 9 |
Esta notificación fue enviada a estudiantes de una materia/sección |
Solo el remitente puede cargar los receptores, cuando un recepto es el que acciona la ruta show
solo podrá cargar el
remitente.
BelongsTo sender
BelongsToMany receivers
Obtiene las notificaciones recibidas del usuario autenticado
{primary} si se envia
?sent
en el query string se obtendra la lista de las notificaciones enviadas por el usuario autenticado
GET /notifications
usuario
habilitadoextends
Query FiltersFilter | Description |
---|---|
sent |
Se obtienen las notificaciones enviadas por el usuario en vez de las recibidas. |
type=int |
Filtra por tipo de notificación |
receiver_user=id |
Obtiene las notificaciones enviadas a el usuario especifico |
with=sender |
El with funciona distinto aqui, solo permite cargar quien envio la notificación. |
200
Notificaciones recibidas
// Lista de recibidas
[
{
"id": 1,
"content": "Consectetur perspiciatis natus adipisci recusandae est expedita...",
"type": 7,
"attachment": null,
"created_at": "2020-04-16 12:22:30",
"updated_at": "2020-04-16 12:22:30",
"sender_user_id": 1,
"pivot": {
"user_id": 2,
"notification_id": 1,
"read_at": null, // Si ya se marco como leida presentara un DateTime
"created_at": "2020-04-16 12:22:30",
"updated_at": "2020-04-16 12:22:30"
}
}
]
Notificaciones enviadas
// Lista de enviadas
[
{
"id": 1,
"content": "Et dolores quia deserunt molestiae. Nesciunt velit similique aut. Aliquam iure dolor ut qui placeat. Voluptatum sit itaque eaque eum doloremque veniam. Sit nihil voluptatum hic fugit.",
"type": 1,
"attachment": null,
"created_at": "2020-04-16 12:29:31",
"updated_at": "2020-04-16 12:29:31",
"sender_user_id": 1
}
]
Dependiendo del tipo de notificacion, esta sera reflejada a los usuarios, el usuario del request sera considerado como
el remitente
POST /notifications
admins
coordinadores
profesores
{
"title": "nullable|string",
"content": "required|string",
"type": "required|integer|in:{types}",
"attachment": "nullable|file", // Optional Attachment
"receiver_user_id": "integer|exists:users,id" // Solo requerido y utilizado cuando type=7
}
Cuando se elimina una notificación esta desaparece de todos sus receptores relacionados
DELETE /notifications/{id}
-Usuario que envío la notificación
Esta acción solo funcionará si el usuario que la acciona es un remitente
de la notificación especificada.
PATCH /notifications/{id}/mark-as-read
GET /students/{id}/notifications
admins
coordinador
que coordine la especialidad del estudianteestudiante
relacionado extends
QueryFiltersFilter | Description |
---|---|
type=int |
Filtra por tipo de notificación |
with=sender |
Solo se permite cargar quien envío la notificación. |