Cambios en la API pública de Crehana.
Nuevo endpoint para crear turnos
POST /org/{slug}/time/attendance/shifts/ crea un turno de Asistencia, fijo o
rotativo, con sus descansos y tolerancias, igual que un administrador desde
Crehana. Está pensado para sistemas de RR. HH. o de planificación que son
dueños de los horarios.
La respuesta trae el id del turno y, en un rotativo, el id de cada ciclo:
son el shift_id y el start_cycle_id que pide
Asignar turnos. Los días que no
se mandan son de descanso, las horas van en HH:MM y una salida menor que la
entrada es un turno nocturno.
El nombre es único entre los turnos activos de la organización: reenviar la
misma creación responde 409 con el id del turno que ya existe, así que un
reintento nunca duplica. Requiere credenciales de un administrador de la
organización.
Guía completa en Crear turnos.
Nuevo reporte: resultados de evaluaciones por clase
GET /api/v5/rest/org/{organization_slug}/reports/learning/quiz-results/
devuelve los resultados de los quizzes de clase (las evaluaciones de cada
video, no la evaluación final del curso, que ya está en
reports/learning/quizzes) con una fila por usuario, curso y quiz. Es la misma
información del Excel “Resultados de Evaluaciones por Clase” del panel de
administración, lista para integrar.
Cada fila consolida los intentos: attempts_count, las fechas del primero,
el último y el mejor intento (first_attempt_at, last_attempt_at,
best_attempt_at, en UTC), el puntaje del último intento (score) y el más
alto (best_score), el mínimo para aprobar (passing_percentage), respuestas
correctas e incorrectas, total de preguntas, duración y límite de tiempo en
segundos (time_limit_seconds, null cuando no hay límite) y el estado del
último intento (status: approved, failed, incomplete o not_started).
También viene el curso (course_id, course_title), el quiz (quiz_id,
quiz_name, quiz_type summative o formative) y la persona (user_id,
user_full_name, user_email, user_document).
Filtros: course_id (repetible, hasta 100), user_email, document, status
y el rango from_date / to_date sobre last_attempt_at. Las filas llegan
ordenadas por last_attempt_at, de la más reciente a la más antigua, y se
recorren con cursor / next_cursor (limit hasta 500). Este reporte no
acepta offset.
