Saltar a contenido

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 end ni systemEnd
  • Un fichaje está cerrado si tiene end (usuario fichó salida) o systemEnd (sistema cerró automáticamente)
  • Cuando endSource es "system", significa que el sistema cerró el fichaje automáticamente (el usuario no fichó salida)