Users
1. Crear usuarios
- local_servicerefactor_user_create_users
Descripción: Servicio para crear uno o varios usuarios en el sistema, asignándoles un rol y generando credenciales.
Endpoint: local_servicerefactor_user_create_users
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_user_create_users
- firstname: string | Nombre(s) del usuario
- lastname: string | Apellidos del usuario
- dni: string | DNI del usuario
- email: string | Correo electrónico (único)
- country: string | Código de país (ISO 3166-1 alpha2, ej: ES, MX)
- city: string | Ciudad
- phone: string | Teléfono (Opcional)
- createpassword: int | 1 para generar contraseña y enviar por email (Opcional)
- changepassword: int | 1 para forzar cambio de contraseña (Opcional)
- password: string | Contraseña en texto plano (Opcional)
- roleid: int | ID del rol a asignar
Respuestas:
Usuario creado correctamente
{ "status": 201, "code": 0, "message": "", "body": { "id": ID de usuario "fullname": Nombre del usuario "email": Email del usuario }}Error campos vacíos
{ "status": 400, "code": 1, "message": "The field(s) cannot be blank: firstname"}Error email inválido
{ "status": 400, "code": 2, "message": "Email address is invalid"}Error rol inválido
{ "status": 400, "code": 3, "message": "Role id is invalid"}Error contraseña invalida
{ "status": 400, "code": 4, "message": "Invalid 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 #."}Error email existente
{ "status": 400, "code": 6, "message": "Email already exists: juan@example.com"}2. Cambiar contraseña
- local_servicerefactor_change_password
Descripción: Permite cambiar la contraseña de un usuario validando la contraseña actual.
Endpoint: local_servicerefactor_change_password
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_change_password
- userid: int | ID del usuario
- email: string | Email del usuario
- password: string | Contraseña actual
- newpassword: string | Nueva contraseña
Respuestas:
Contraseña cambiada
{ "status": 200, "code": 0, "message": ""}Error usuario no encontrado
{ "status": 404, "code": 1, "message": "User not found"}Error contraseña nueva inválida
{ "status": 400, "code": 2, "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 #."}Error contraseña actual incorrecta
{ "status": 400, "code": 3, "message": "Incorrect password"}3. Obtener información de perfil
- local_servicerefactor_user_get_profile_info
Descripción: Obtiene la información detallada del perfil de un usuario, incluyendo campos personalizados como DNI y configuración de perfil público.
Endpoint: local_servicerefactor_user_get_profile_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_user_get_profile_info
- userid: int | ID del usuario
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "id": ID del usuario "name": Nombre del usuario "lastname": Apellido del usuario "dni": Identificación del usuario "email": Email del usuario "country": País de origen "city": Ciudad "phone": Número de Teléfono "publicprofile": Identificador de perfil publico o privado "roleid": ID de rol "active": Identificador activo/inactivo "lang": Idioma del usuario }}Error usuario no encontrado
{ "status": 404, "code": 1, "message": "User not found"}4. Guardar datos de perfil
- local_servicerefactor_user_post_save_profile_data
Descripción: Actualiza la información básica y el DNI del usuario.
Endpoint: local_servicerefactor_user_post_save_profile_data
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_user_post_save_profile_data
- userid: int | ID del usuario
- firstname: string | Nombre
- lastname: string | Apellidos
- dni: string | DNI
- email: string | Email (para validación)
- country: string | País
- city: string | Ciudad
- phone: string | Teléfono
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error usuario no encontrado
{ "status": 404, "code": 1, "message": "User not found"}5. Cambiar visibilidad de perfil público
- local_servicerefactor_post_change_perfil_publico
Descripción: Actualiza el campo personalizado que determina si el perfil del usuario es público.
Endpoint: local_servicerefactor_post_change_perfil_publico
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_post_change_perfil_publico
- userid: int | ID del usuario
- valor: int | Nuevo valor (0 o 1)
Respuestas:
{ "status": 200, "message": "OK"}6. Cambiar idioma de usuario
- local_servicerefactor_post_change_user_lang
Descripción: Actualiza el campo personalizado de idioma preferido del usuario.
Endpoint: local_servicerefactor_post_change_user_lang
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_post_change_user_lang
- userid: int | ID del usuario
- lang: string | Código de idioma (ej. ‘es’, ‘en’)
Respuestas:
{ "status": 200, "message": "OK"}7. Enviar código de recuperación
- local_servicerefactor_send_code_reset_password
Descripción: Genera un código de recuperación de 6 dígitos y lo envía al correo del usuario.
Endpoint: local_servicerefactor_send_code_reset_password
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_send_code_reset_password
- email: string | Correo del usuario
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error al enviar email
{ "status": 500, "code": 1, "message": "Error trying to send email"}8. Validar código de recuperación
- local_servicerefactor_validate_code_reset_password
Descripción: Verifica si el código ingresado por el usuario es correcto y no ha expirado (validez de 10 minutos).
Endpoint: local_servicerefactor_validate_code_reset_password
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_validate_code_reset_password
- email: string | Correo del usuario
- code: string | Código recibido
Respuestas:
Código válido
{ "status": 200, "code": 0, "message": ""}Código inválido
{ "status": 400, "code": 1, "message": "Invalid verification code"}Código expirado
{ "status": 400, "code": 2, "message": "The password reset code you used is more than 10 minutes old and has expired. Please initiate a new password reset"}9. Restablecer contraseña (con código)
- local_servicerefactor_user_reset_password
Descripción: Cambia la contraseña del usuario tras validar el código de recuperación.
Endpoint: local_servicerefactor_user_reset_password
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_user_reset_password
- email: string | Correo del usuario
- code: string | Código de verificación
- newpassword: string | Nueva contraseña
Respuestas:
Contraseña restablecida
{ "status": 200, "code": 0, "message": ""}Código inválido
{ "status": 400, "code": 1, "message": "Invalid verification code"}Código expirado
{ "status": 400, "code": 2, "message": "The password reset code you used is more than 10 minutes old and has expired. Please initiate a new password reset"}Contraseña insegura
{ "status": 400, "code": 3, "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 #."}Contraseña identica a la contraseña que tenia anteriormente
{ "status": 400, "code": 4, "message": "Error updating password, password not changed"}10. Obtener calificaciones de módulo
- local_servicerefactor_get_user_grade_by_module
Descripción: Obtiene un desglose de las calificaciones del usuario en un módulo específico (sección), incluyendo foros, exámenes y casos prácticos.
Endpoint: local_servicerefactor_get_user_grade_by_module
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_user_grade_by_module
- courseid: int | ID del curso
- sectionnum: int | Número de la sección (módulo)
- userid: int | ID del usuario
- groupid: int | ID del grupo (Opcional)
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "nota_media": Calificación promedio del módulo (El modelo evaluativo afecta este valor, dependiendo a que bloque pertenezca el módulo) "foros": { "foros": Número de foros en el módulo "nota_media": Calificación media de foros en el módulo "respuestas": Número de respuestas recibidas "comentarios": Número de comentarios realizados }, "casos": { "nota_media": Calificación media de casos en el módulo "total_casos": Total de casos en el módulo "corregidos": Número de casos corregidos "presentados": Número de casos presentados }, "examenes": { "nota_media": Calificación media de examenes en el módulo "corregidos": Número de examenes corregidos "presentados": Número de examenes corregidos "total_examenes": Total de examenes en el módulo } }}Error si no se encuentra el curso
{ "status": 403, "code": 1, "message": "Course not found"}Error si es un Máster y no se encuentra el grupo
{ "status": 400, "code": 3, "message": "Group not found"}Error si no se encuentra el módulo
{ "status": 403, "code": 4, "message": "Section not found"}11. Obtener calendario de eventos
- local_servicerefactor_get_event_calendar
Descripción: Obtiene un listado cronológico de actividades (TFM, entregas, foros) con su estado de apertura y entrega.
Endpoint: local_servicerefactor_get_event_calendar
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_event_calendar
- userid: int | ID del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "index_current_module": Número de módulo en el que se encuentra el alumno "activities": [ "module_id": ID de módulo "module_name": Nombre del módulo "activity_name": Nombre de la actividad "event_type": Tipo de actividad "start_date": Fecha de apertura "end_date": Fecha de cierre "open": Bandera para indicar si la actividad o contenido está disponible "delivered": Indicador si el alumno completo la actividad ] }}Error si no se encuentra el curso
{ "status": 403, "code": 1, "message": "Course not found"}Error si es un Máster y no se encuentra el grupo
{ "status": 400, "code": 2, "message": "Group not found"}Error si no se encuentra el usuario
{ "status": 403, "code": 3, "message": "User not found"}12. Obtener calendario de usuario (Curso Medio)
- local_servicerefactor_get_user_calendar
Descripción: Obtiene fechas de secciones, exámenes y foros personalizadas para el usuario (usado en “Curso medio”).
Endpoint: local_servicerefactor_get_user_calendar
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_user_calendar
- userid: int | ID del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "sections": [ 'id': ID de módulo (sección) 'name': Nombre del módulo 'section': Número de seccion 'startdate': Fecha de apertura 'enddate': Fecha de cierre ] "quizzes": [ 'id': ID de actividad (cmid) 'name': Nombre del examen 'section': Número de seccion 'startdate': Fecha de apertura 'enddate': Fecha de cierre 'quizcategoryid': Categoría del examen 'quiztypeid': Tipo de examen ] "forums": [ 'id': ID de actividad (cmid) 'name': Nombre del foro 'section': Número de seccion 'startdate': Fecha de apertura 'enddate': Fecha de cierre ] }}Error si no se encuentra el curso
{ "status": 403, "code": 1, "message": "Course not found"}Error si no es curso medio
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error si no se encontró el grupo
{ "status": 400, "code": 3, "message": "Group not found"}Error si el usuario no está inscrito en el grupo
{ "status": 403, "code": 4, "message": "User not enrolled"}13. Crear nota personal
- local_servicerefactor_create_note
Descripción: Crea una nota personal asociada al usuario.
Endpoint: local_servicerefactor_create_note
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_create_note
- usertoken: string | Token del usuario
- userid: int | ID del usuario
- title: string | Título de la nota
- note: string | Contenido de la nota
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "id": ID de la nota }}Error si no se encontró el usuario
{ "status": 403, "code": 2, "message": "User not found"}14. Actualizar nota personal
- local_servicerefactor_update_note
Descripción: Actualiza el contenido de una nota existente.
Endpoint: local_servicerefactor_update_note
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_update_note
- usertoken: string | Token del usuario
- id: int | ID de la nota
- title: string | Nuevo título
- note: string | Nuevo contenido
Respuestas:
{ "status": 200, "code": 0, "message": ""}Error si no se encontró la nota
{ "status": 403, "code": 2, "message": "Note not found"}15. Obtener nota personal
- local_servicerefactor_get_note
Descripción: Recupera la nota guardada por el usuario.
Endpoint: local_servicerefactor_get_note
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_note
- usertoken: string | Token del usuario
- userid: int | ID del usuario
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "id": ID de nota "title": Titulo de la nota "note": Texto en la nota }}Error si no se encontró el usuario
{ "status": 403, "code": 2, "message": "User not found"}Error si no se encontró la nota
{ "status": 403, "code": 3, "message": "Note not found"}16. Obtener calificaciones de casos (Módulo)
- local_servicerefactor_get_casos_grades_by_module
Descripción: Obtiene las estadísticas de calificación específicas para los “casos prácticos” (Assignments) de un módulo.
Endpoint: local_servicerefactor_get_casos_grades_by_module
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_casos_grades_by_module
- courseid: int | ID del curso
- orden: int | Número de sección
- userid: int | ID del usuario
Respuestas:
{ "nota_media": Calificación media "total_casos": Número de casos en el módulo "presentados": Número de casos presentados "corregidos": Número de casos corregidos}