Skip to main content

Módulo Pretests

El módulo PreTest (src/domains/preTest/) gestiona las evaluaciones diagnósticas (pretests) que los usuarios responden al inicio o durante su proceso en la plataforma.

Schema PreTest

Definido en schemas/preTest.schema.ts. Colección: pretests.

CampoTipoDescripción
testIdstring (requerido)Identificador del test (ej. PRETEST-BASELINE-EMOTIONS)
userIdstring (requerido)ID del usuario (documentNumber)
responsesArrayRespuestas: { questionId, answer, points }
totalScorenumberPuntaje total calculado

Endpoints

MétodoRutaDescripciónPermiso
POST/api/pretestsCrear pretest15
GET/api/pretestsListar todos (paginado)15
PATCH/api/pretests/:idActualizar pretest15
DELETE/api/pretests/:idEliminar pretest15
POST/api/pretests/saveGuardar respuesta de pretest
GET/api/pretests/by-test/:testIdRespuestas de un test específico15
POST/api/pretests/search/userAndTestBuscar por userId + testId15
GET/api/pretests/search/user/:userIdTodos los tests de un usuario
GET/api/pretests/result-allTodos los resultados15
GET/api/pretests/result/:idResultado por ID
GET/api/pretests/status/:userIdEstado de completitud del usuario
GET/api/pretests/count-all-pretestsConteo total de pretestsBypass

POST /pretests/save

Endpoint público que guarda las respuestas del pretest. Soporta tanto datos planos como el formato { body: "{...}" } para compatibilidad con clientes existentes.

GET /pretests/status/:userId

Retorna el estado de todos los tests activos para un usuario: cuáles ha completado, cuáles faltan y si ya puede continuar. El userId usado es el documentNumber del usuario (no el ObjectId).

Relación con Questions

Cada respuesta en el array responses contiene:

  • questionId — Identificador de la pregunta (ej. Q1)
  • answer — Respuesta del usuario (puede ser string o cualquier tipo)
  • points — Puntaje obtenido en esa pregunta

El totalScore se calcula sumando los points de todas las respuestas. El módulo no define un schema separado para preguntas; las preguntas del pretest se definen a nivel de aplicación cliente y se referencian por questionId.