Quizzes
1. Crear examen
- local_contentdata_create_quiz
Descripción:
Servicio para crear un nuevo examen.
Endpoint: local_contentdata_create_quiz
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_quiz
- usertoken: string | token del usuario
- courseid: int | ID de curso
- sectionnumber: int | Número de módulo
- numquestions: int | Número de preguntas que respondera el alumno
- time: int | Tiempo que tiene el alumno para responder el examen
- quizannouncement: int | categoría del examen (Ordinario/extraordinario)
- rework: int | Bandera para señalar si el alumno puede repetir el examen
- restrict_progress: int | Bandera para señalar si el alumno puede seguir avanzando en el curso si no pasa el examen
- questions: array | array con formato para preguntas
FORMATO PARA LAS PREGUNTAS
'question' = [ 'lang' = Idioma de la pregunta (EN, ES, PT, etc.) 'questiontext' = Texto de la pregunta]'answers'[ 'answer'[ 'lang' = Idioma de la respuesta (EN, ES, PT, etc.) 'answertext' = Texto de la respuesta ] 'correctanswer' = Bandera para indicar si la respuesta es correcta o no, se puede seleccionar más de una respuesta correcta (1->correcta, 0->incorrecta)] questions[0][question][0][lang]:es questions[0][question][0][questiontext]:pregunta 1 questions[0][question][1][lang]:en questions[0][question][1][questiontext]:question 1 questions[0][answers][0][answer][0][lang]:es questions[0][answers][0][answer][0][answertext]:respuesta 1 questions[0][answers][0][answer][1][lang]:en questions[0][answers][0][answer][1][answertext]:answer 1 questions[0][answers][0][correctanswer]:1 questions[0][answers][1][answer][0][lang]:es questions[0][answers][1][answer][0][answertext]:respuesta 2 questions[0][answers][1][answer][1][lang]:en questions[0][answers][1][answer][1][answertext]:answer 2 questions[0][answers][1][correctanswer]:0 questions[0][answers][2][answer][0][lang]:es questions[0][answers][2][answer][0][answertext]:respuesta 3 questions[0][answers][2][answer][1][lang]:en questions[0][answers][2][answer][1][answertext]:answer 3 questions[0][answers][2][correctanswer]:0Respuestas:
Se creó el examen correctamente
{ "status": 200, "code": 0, "message": "", "body": [ 'id': id de la actividad (cmid) ]}Error producido si el usuario no tiene permisos para crear exámenes.
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si no se encuentró el curso
{ "status": 404, "code": 2, "message": "Course not found", "body": []}Error producido si no se encuentró el módulo
{ "status": 404, "code": 3, "message": "Section not found", "body": []}Error producido si no se encuentró la categoría del examen
{ "status": 404, "code": 4, "message": "Quiz category not found", "body": []}Error producido si no se encuentró el tipo de examen
{ "status": 404, "code": 5, "message": "Quiz type not found", "body": []}Error producido si ninguna respuesta es correcta en alguna pregunta
{ "status": 404, "code": 6, "message": "question (num question) has no correct answer", "body": []}Error producido si el número de preguntas para el usuario es mayor al número de preguntas registradas
{ "status": 404, "code": 7, "message": "You do not have enough questions", "body": []}2. Eliminar examen
- local_contentdata_delete_quiz
Descripción:
Servicio para eliminar un examen.
Endpoint: local_contentdata_delete_quiz
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_quiz
- usertoken: string | token del usuario
- courseid: int | ID de curso
- sectionnum: int | Número de módulo
- activityid: int | ID de actividad (cmid)
- groupid: int | ID de promoción (opcional para eliminar exámenes solo de promociones)
Respuestas:
Se eliminó el examen correctamente
{ "status": 200, "code": 0, "message": "", "body": [ 'id': id de la actividad (cmid) 'name': Nombre del examen ]}Error producido si el usuario no tiene permisos para eliminar exámenes.
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si no se encuentró el curso
{ "status": 404, "code": 2, "message": "Course not found", "body": []}Error producido si no se encuentró el módulo
{ "status": 404, "code": 3, "message": "Section not found", "body": []}Error producido si no se encuentró el examen
{ "status": 404, "code": 4, "message": "Quiz not found", "body": []}3. Enlistar exámenes de un curso/promoción
- local_contentdata_get_quizzes_by_course
Descripción:
Servicio para enlistar los exámenes que tiene un curso
Endpoint: local_contentdata_get_quizzes_by_course
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_quizzes_by_course
- courseid: int | ID de curso
- sectionnum: int | Número de módulo
- groupid: int | ID de promoción (opcional para promociones)
Respuestas:
Se eliminó el examen correctamente
{ "status": 200, "code": 0, "message": "", "body": [ 'id' : ID de la actividad 'categoryid' : Categoría del examen 'typeid' : Tipo de examen 'quizid' : ID del examen 'name' : Nombre del examen 'startdate' : Fecha de apertura 'enddate' : Fecha de cierre ]}Error producido si no se encuentró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encuentró el módulo
{ "status": 404, "code": 3, "message": "Section not found", "body": []}Error producido si no se encuentró el grupo
{ "status": 404, "code": 2, "message": "Group not found", "body": []}4. Actualizar examen
- local_contentdata_update_quiz
Descripción:
Servicio para actualizar un examen.
Endpoint: local_contentdata_update_quiz
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_quiz
- usertoken: string | token del usuario
- quizid: int | ID de modulo (cmid)
- numquestions: int | Número de preguntas que respondera el alumno
- time: int | Tiempo que tiene el alumno para responder el examen
- rework: int | Bandera para señalar si el alumno puede repetir el examen
- restrict_progress: int | Bandera para señalar si el alumno puede seguir avanzando en el curso si no pasa el examen
- questions: array | array con formato para preguntas
FORMATO PARA LAS PREGUNTAS
'questionid' = ID de pregunta'delete' = Bandera para eliminar preguntas (es opcional, solo si se desea eliminar la pregunt se envia 1)'question' = [ 'lang' = Idioma de la pregunta (EN, ES, PT, etc.) 'questiontext' = Texto de la pregunta]'answers'[ 'answerid' = ID de respuesta 'answer'[ 'lang' = Idioma de la respuesta (EN, ES, PT, etc.) 'answertext' = Texto de la respuesta ] 'correctanswer' = Bandera para indicar si la respuesta es correcta o no, se puede seleccionar más de una respuesta correcta (1->correcta, 0->incorrecta)] questions[0][question][questionid]:1 questions[0][question][0][lang]:es questions[0][question][0][questiontext]:pregunta 1 questions[0][question][1][lang]:en questions[0][question][1][questiontext]:question 1 questions[0][answers][0][anserid]:1 questions[0][answers][0][answer][0][lang]:es questions[0][answers][0][answer][0][answertext]:respuesta 1 questions[0][answers][0][answer][1][lang]:en questions[0][answers][0][answer][1][answertext]:answer 1 questions[0][answers][0][correctanswer]:1 questions[0][answers][1][anserid]:2 questions[0][answers][1][answer][0][lang]:es questions[0][answers][1][answer][0][answertext]:respuesta 2 questions[0][answers][1][answer][1][lang]:en questions[0][answers][1][answer][1][answertext]:answer 2 questions[0][answers][1][correctanswer]:0 questions[0][answers][2][anserid]:3 questions[0][answers][2][answer][0][lang]:es questions[0][answers][2][answer][0][answertext]:respuesta 3 questions[0][answers][2][answer][1][lang]:en questions[0][answers][2][answer][1][answertext]:answer 3 questions[0][answers][2][correctanswer]:0Respuestas:
Se editó el examen correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos para crear exámenes.
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si no se encuentró el examen
{ "status": 404, "code": 2, "message": "quiz not found", "body": []}Error producido si ninguna respuesta es correcta en alguna pregunta
{ "status": 404, "code": 3, "message": "question (num question) has no correct answer", "body": []}Error producido si el examen cuenta con intentos y se desea agregar más preguntas
{ "status": 404, "code": 4, "message": "You cannot change the number of questions because this quiz has been attempted", "body": []}5. Obtener los resultados de un examen de un alumno
- local_contentdata_get_user_quiz
Descripción:
Servicio para obtener los resultados de un alumno en un examen.
Endpoint: local_contentdata_get_user_quiz
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_user_quiz
- courseid: int | ID de curso
- activityid: int | ID de modulo (cmid)
- userid: int | ID de usuario (alumno)
- groupid: int | ID del grupo
- extraordinarydateid: int | ID de asignación de extraordinario (Opcional)
Respuestas:
Se obtuvo la información del examen
{ "status": 200, "code": 0, "message": "", "body": [ 'name' : Nombre del alumno 'quizname' : Nombre del examen 'cmid' : ID de actividad 'quizid' : ID del examen 'categoryid' : Categoría del examen 'typeid' : Tipo de examen 'quizstartdate' : Fecha de apertura del examen 'quizenddate' : Fecha de cierre del examen 'final_grade' : Calificación final en el examen 'quizstate' : Estado del examen 'attempts'[ 'attemptid' : ID de intento 'attempt_grade' : Calificación del intento 'quizpdfurl' : URL del archivo de respuestas del intento 'attempt_time_start' : Fecha en que inicio el examen el alumno 'attempt_time_finish' : Fecha en que termino el examen el alumno 'attempt_time' : Tiempo que le tomo al alumno para responder el examen ] ]}Error producido si no se encuentró el curso
{ "status": 403, "code": 1, "message": "Course not found", "body": []}Error producido si no se encuentró el grupo
{ "status": 400, "code": 2, "message": "Group not found", "body": []}Error producido si no se encuentró el usuario
{ "status": 400, "code": 3, "message": "User not found", "body": []}Error producido si no se encuentró el examen
{ "status": 400, "code": 4, "message": "Quiz not found", "body": []}6. Eliminar el intento de un alumno en un examen
- local_contentdata_delete_user_attempt
Descripción:
Servicio para eliminar el intento de un alumno en un examen.
Endpoint: local_contentdata_delete_user_attempt
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_user_attempt
- courseid: int | ID de curso
- attemptid: int | ID de intento
- userid: int | ID de usuario (alumno)
- groupid: int | ID del grupo
Respuestas:
Se eliminó el intento del alumno
{ "status": 200, "code": 0, "message": ""}Error producido si no se encuentró el curso
{ "status": 403, "code": 1, "message": "Course not found"}Error producido si no se encuentró el grupo
{ "status": 400, "code": 2, "message": "Group not found"}Error producido si no se encuentró el alumno
{ "status": 400, "code": 3, "message": "User not found"}Error producido si no se encuentró el intento
{ "status": 400, "code": 4, "message": "Attempt not found"}