Managers
1. Obtener calificaciones de usuarios por módulo
- local_servicerefactor_get_users_grades_by_module
Descripción: Obtiene las calificaciones de los usuarios de un grupo específico para una sección (módulo) del curso, calculando los porcentajes según las ponderaciones configuradas para exámenes, foros y casos prácticos.
Endpoint: local_servicerefactor_get_users_grades_by_module
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_users_grades_by_module
- courseid: int | ID del curso
- orden: int | Orden de la sección/módulo
- groupid: int | ID del grupo
Respuestas:
Devuelve las ponderaciones y las calificaciones de los usuarios
{ "ponderaciones":[ "actividad": Nombre de la actividad "porcentaje": Porcentaje en el curso ] "calificaciones": [ "userid": ID de usuario "nombre": Nombre del usuario "examenes": "calificacion": Calificación promedio de los examenes "porcentaje": Ponderacion de examenes "foros": "calificacion": Calificación promedio de los foros "porcentaje": Ponderacion de foros
"casos": "calificacion": Calificación promedio de los casos "porcentaje": Ponderacion de casos ]}2. Obtener plantillas de calificación del curso
- local_servicerefactor_get_course_grade_templates
Descripción: Obtiene la lista de plantillas de calificación disponibles para un curso.
Endpoint: local_servicerefactor_get_course_grade_templates
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_course_grade_templates
- courseid: int | ID del curso
Respuestas:
Lista de plantillas
[ "id": ID de módulo (section) "name": Nombre de la plantilla "categorytemplateid": ID de plantilla]Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}3. Crear plantilla de calificación
- local_servicerefactor_create_course_grade_template
Descripción: Crea una nueva plantilla de calificación vacía asociada a un curso.
Endpoint: local_servicerefactor_create_course_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_create_course_grade_template
- usertoken: string | token del usuario
- courseid: int | ID del curso
- name: string | Nombre de la plantilla
Respuestas:
Se crea la plantilla de calificaciones
{ "status": 201, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}4. Eliminar plantilla de calificación
- local_servicerefactor_delete_course_grade_template
Descripción: Elimina una plantilla de calificación y toda su estructura asociada (categorías e items).
Endpoint: local_servicerefactor_delete_course_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_delete_course_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- courseid: int | ID del curso
Respuestas:
Se elimina la plantilla correctamente
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}5. Obtener estructura de plantilla
- local_servicerefactor_get_grade_template
Descripción: Obtiene la estructura completa (categorías y actividades) de una plantilla de calificación. Devuelve los bloques raíz y sus hijos anidados.
Endpoint: local_servicerefactor_get_grade_template
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_grade_template
- templateid: int | ID de la plantilla
- courseid: int | ID del curso
Respuestas:
Estructura jerárquica de la plantilla
{ "status": 200, "code": 0, "message": "", "body": { "10": { "id": ID de categoría "name": Nombre de categoría 'parentid': Categoría padre 'order': Orden de la categoría 'aggregation': Ponderacion de la categoría 'gradetype': Tipo de calificación 'grademax': Calificación máxima 'grademin': Calificación mínima 'gradepass': Calificación para aprobar 'display': Mostrar calificación 'decimals': Número de decimales en la calificación 'aggregationcoef2': Ponderacion de la categoría "modules": [ 'id': ID de módulos en la categoría ] "items": [ "id": ID del item "name": Nombre del item 'parentid': Categoría padre 'order': Orden del item 'gradetype': Tipo de calificación 'grademax': Calificación máxima 'grademin': Calificación mínima 'gradepass': Calificación para aprobar 'display': Mostrar calificación 'decimals': Número de decimales en la calificación 'aggregationcoef2': Ponderacion del item ] "categories": [ { "id": ID de categoría "name": Nombre de categoría 'parentid': Categoría padre 'order': Orden de la categoría 'aggregation': Ponderacion de la categoría 'gradetype': Tipo de calificación 'grademax': Calificación máxima 'grademin': Calificación mínima 'gradepass': Calificación para aprobar 'display': Mostrar calificación 'decimals': Número de decimales en la calificación 'aggregationcoef2': Ponderacion de la categoría "activities": [ "id": ID de la actividad "name": Nombre de la actividad 'parentid': Categoría padre 'order': Orden de la actividad 'gradetype': Tipo de calificación 'grademax': Calificación máxima 'grademin': Calificación mínima 'gradepass': Calificación para aprobar 'display': Mostrar calificación 'decimals': Número de decimales en la calificación 'aggregationcoef2': Ponderacion de la actividad ] } ], "items": [] } }}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}6. Crear categoría en plantilla
- local_servicerefactor_create_category_grade_template
Descripción: Agrega una nueva categoría de calificación a una plantilla existente.
Endpoint: local_servicerefactor_create_category_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_create_category_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- title: string | Título de la categoría
- parentid: int | ID de la categoría padre (0 para raíz)
- aggregation: int | Método de agregación (ej. 13 = Suma, 10 = Media ponderada)
- aggregateonlygraded: int | Excluir calificaciones vacías (0 o 1)
- droplow: int | Descartar las X más bajas
- gradetype: int | Tipo de calificación
- grademax: int | Calificación máxima
- grademin: int | Calificación mínima
- gradepass: int | Calificación para aprobar
- display: int | Tipo de visualización
- decimals: int | Decimales
- aggregationcoef2: int | Coeficiente de peso
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "newcategory": ID de categoría }}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}Error producido si la ponderación es incorrecta
{ "status": 403, "code": 3, "message": "invalid aggregation value"}Error producido si el valor decimal es incorrecto
{ "status": 403, "code": 4, "message": "invalid decimal range"}Error producido si la categoría padre no existe
{ "status": 403, "code": 5, "message": "parentid doesn't exist"}7. Actualizar categoría en plantilla
- local_servicerefactor_update_category_grade_template
Descripción: Modifica los parámetros de una categoría existente dentro de una plantilla.
Endpoint: local_servicerefactor_update_category_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_update_category_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- categoryid: int | ID de la categoría a editar
- title: string | Nuevo título
- parentid: int | ID del padre
- aggregation: int | Método de agregación (ej. 13 = Suma, 10 = Media ponderada)
- aggregateonlygraded: int | Excluir calificaciones vacías (0 o 1)
- droplow: int | Descartar las X más bajas
- gradetype: int | Tipo de calificación
- grademax: int | Calificación máxima
- grademin: int | Calificación mínima
- gradepass: int | Calificación para aprobar
- display: int | Tipo de visualización
- decimals: int | Decimales
- aggregationcoef2: int | Coeficiente de peso
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos para crear categorías
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}Error producido si la ponderación es incorrecta
{ "status": 403, "code": 3, "message": "invalid aggregation value"}Error producido si el valor decimal es incorrecto
{ "status": 403, "code": 4, "message": "invalid decimal range"}Error producido si la categoría padre no existe
{ "status": 403, "code": 5, "message": "parentid doesn't exist"}8. Eliminar categoría de plantilla
- local_servicerefactor_delete_category_grade_template
Descripción: Elimina una categoría de la plantilla. Si tiene hijos, estos se mueven a la raíz (o categoría superior).
Endpoint: local_servicerefactor_delete_category_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_delete_category_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- categoryid: int | ID de la categoría a eliminar
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}Error producido si la categoría no existe
{ "status": 403, "code": 3, "message": "category doesn't exist"}9. Crear actividad en plantilla
- local_servicerefactor_create_activity_grade_template
Descripción: Agrega un item de actividad (ej. examen, tarea) a una categoría dentro de la plantilla.
Endpoint: local_servicerefactor_create_activity_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_create_activity_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- parentid: int | ID de la categoría padre
- title: string | Título de la actividad
- gradetype: int | Tipo de calificación
- grademax: int | Calificación máxima
- grademin: int | Calificación mínima
- gradepass: int | Calificación para aprobar
- display: int | Tipo de visualización
- decimals: int | Decimales
- aggregationcoef2: int | Coeficiente de peso
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}Error producido si el tipo de calificación no existe
{ "status": 403, "code": 3, "message": "invalid grade type value"}Error producido si el valor decimal es incorrecto
{ "status": 403, "code": 4, "message": "invalid decimal range"}Error producido si la categoría no existe
{ "status": 403, "code": 5, "message": "category doesn't exist"}10. Actualizar actividad en plantilla
- local_servicerefactor_update_activity_grade_template
Descripción: Modifica una actividad existente en la plantilla. Permite moverla de categoría usando “newparentid”.
Endpoint: local_servicerefactor_update_activity_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_update_activity_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- activityid: int | ID de la actividad (índice en la lista)
- categoryid: int | ID de la categoría actual
- title: string | Título
- newparentid: int | Nuevo ID de categoría padre (Opcional, para mover)
- gradetype: int | Tipo de calificación
- grademax: int | Calificación máxima
- grademin: int | Calificación mínima
- gradepass: int | Calificación para aprobar
- display: int | Tipo de visualización
- decimals: int | Decimales
- aggregationcoef2: int | Coeficiente de peso
Respuestas:
{ "status": 200, "code": 0, "message": ""}11. Eliminar actividad de plantilla
- local_servicerefactor_delete_activity_grade_template
Descripción: Elimina una actividad específica de una plantilla.
Endpoint: local_servicerefactor_delete_activity_grade_template
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_delete_activity_grade_template
- usertoken: string | token del usuario
- templateid: int | ID de la plantilla
- activityid: int | ID de la actividad
- categoryid: int | ID de la categoría
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el template no existe
{ "status": 403, "code": 2, "message": "template doesn't exist"}Error producido si la categoría no existe
{ "status": 403, "code": 3, "message": "category doesn't exist"}Error producido si la actividad no existe
{ "status": 403, "code": 4, "message": "activity doesn't exist"}12. Asignar plantilla de calificaciones al curso
- local_servicerefactor_assign_course_grades
Descripción: Aplica una plantilla de calificación a un curso o grupo. Esto crea las categorías y items de calificación reales en el libro de calificaciones de Moodle basándose en la plantilla.
Endpoint: local_servicerefactor_assign_course_grades
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_assign_course_grades
- usertoken: string | token del usuario
- courseid: int | ID del curso
- templateid: int | ID de la plantilla a aplicar
- groupid: int | ID del grupo (Opcional, para cursos Máster)
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si no se encontró el curso
{ "status": 404, "code": 2, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 3, "message": "Group not found"}Error producido si el template no existe
{ "status": 403, "code": 4, "message": "template doesn't exist"}13. Obtener examen (Quiz)
- local_servicerefactor_get_quiz
Descripción: Obtiene la información detallada de un cuestionario, incluyendo sus ajustes, fechas y las preguntas que contiene.
Endpoint: local_servicerefactor_get_quiz
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_quiz
- quizid: int | ID del módulo del curso (cmid) del examen
Respuestas:
{ "status": 200, "code": 0, "message": "", "body":[ "quizid": ID de examen 'quizname' : Nombre del examen "quizannouncement": Categoría del examen (ordinario/extraordinario) "quiztype": Tipo de examen "rework": Bandera para señalar si el alumno puede repetir el examen "numquestions": Número de preguntas que respondera el alumno "time": Tiempo para realizar el examen "attempts": Número de intentos "availability": [ "start": Fecha de apertura "end": Fecha de cierre ] "questions": [ 'questionid' = ID de pregunta 'questionname' = Nombre de la pregunta '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) ] ] ]}14. Restablecer contraseña de usuario
- local_servicerefactor_reset_user_password
Descripción: Permite a un gestor (Manager/Admin) restablecer la contraseña de un estudiante utilizando un token de validación.
Endpoint: local_servicerefactor_reset_user_password
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_reset_user_password
- email: string | Email del estudiante
- token: string | Token del gestor
- newpassword: string | Nueva contraseña
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si no se encontro el usuario
{ "status": 404, "code": 5, "message": "Student does not exist"}Error si la contraseña no cumple los requisitos de seguridad
{ "status": 400, "code": 6, "message": "Invalid new password, Password must be at least: 8 characters long, 1 digit, 1 upper case letter, 1 lower case letter, 1 special character such as as *, -, or #."}