Dashboard de Fichajes¶
GET /api/v2/timerecord/get-all-current-record¶
Método/Ruta: GET /api/v2/timerecord/get-all-current-record
Auth: Bearer JWT
Descripción: Obtiene el resumen de fichajes del día actual: contadores (total, abiertos, cerrados) y listado de empleados con su estado.
Params¶
(sin parámetros)
cURL¶
curl -X GET "http://localhost:7001/api/v2/timerecord/get-all-current-record" \
-H "Authorization: Bearer <TOKEN>"
Response (200)¶
{
"status": "success",
"data": {
"counts": {
"total": 15,
"open": 5,
"closed": 10
},
"records": [
{
"employeeId": 40,
"fullName": "Oscar Castaño",
"status": "open",
"time": "2026-01-07T14:56:42.000Z",
"startSource": "app",
"startDeviceId": "iphone-123",
"endSource": null,
"endDeviceId": null
},
{
"employeeId": 12,
"fullName": "María García",
"status": "closed",
"time": "2026-01-07T14:00:00.000Z",
"startSource": "web",
"startDeviceId": "browser-456",
"endSource": "web",
"endDeviceId": "browser-456"
},
{
"employeeId": 25,
"fullName": "Pedro López",
"status": "closed",
"time": "2026-01-07T17:30:00.000Z",
"startSource": "app",
"startDeviceId": "android-789",
"endSource": "system",
"endDeviceId": null
}
]
}
}
Response Fields¶
| Campo | Tipo | Descripción |
|---|---|---|
counts.total |
number | Total de fichajes del día |
counts.open |
number | Fichajes abiertos (sin salida) |
counts.closed |
number | Fichajes cerrados (con salida) |
records[].employeeId |
number | ID del empleado |
records[].fullName |
string | Nombre completo del empleado |
records[].status |
string | "open" o "closed" |
records[].time |
Date | Hora de entrada (si open) o salida (si closed) |
records[].startSource |
string | null | Origen del fichaje de entrada: "web", "app", o null |
records[].startDeviceId |
string | null | ID del dispositivo de entrada, o null |
records[].endSource |
string | null | Origen del fichaje de salida: "web", "app", "system" (cierre automático), o null |
records[].endDeviceId |
string | null | ID del dispositivo de salida, o null |
Errores¶
| Código | Descripción |
|---|---|
| 401 | Token inválido o expirado |
Notas¶
- El timezone de referencia es Europe/Madrid
- Los registros se ordenan por hora de inicio descendente
- Solo se muestran fichajes con entrada real (donde el usuario fichó). Los registros creados automáticamente por el sistema (solo
systemStart) no aparecen en este listado - Un fichaje está abierto si no tiene
endnisystemEnd - Un fichaje está cerrado si tiene
end(usuario fichó salida) osystemEnd(sistema cerró automáticamente) - Cuando
endSourcees"system", significa que el sistema cerró el fichaje automáticamente (el usuario no fichó salida)