Courses
1. Obtener contenidos del curso
- local_servicerefactor_course_get_contents
Descripción: Servicio principal para obtener todos los contenidos (módulos) de una sección específica del curso. Devuelve una estructura compleja que puede incluir recursos, exámenes, foros, casos prácticos y datos del TFM si corresponde. Maneja lógica específica para cursos tipo Máster, Medio y Alumni.
Endpoint: local_servicerefactor_course_get_contents
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_course_get_contents
- courseid: int | ID del curso
- groupid: int | ID del grupo (Actúa como courseid en cursos Máster)
- userid: int | ID del usuario
- sectionnumber: int | Número de la sección a consultar
- lang: string | Idioma (por defecto ‘es’)
Respuestas:
Devuelve la lista de módulos y contenidos con sus estados
{ "status": 200, "code": 0, "message": "", "body": [ "contentcategory": [ "categorysectionid": ID de la categoría de contenido "title": Titulo del contenido "description": Descripción del contenido "type": Tipo del contenido "url": URL del contenido "author": Autor "duration": Duración del contenido "order": Orden "photo": Foto "viewed": Bandera para el contenido visto "moduleid": ID del modulo (sección) "contentid": ID del contenido "secondswatched": Tiempo que usuario vio el contenido "contentstate": Estado del contenido "complementarycontent": Identificador de contenido complementario "cmid": ID de actividad //Quizzes "quizid": ID de examen "quizstate": Estado del examen "quizannouncement": Categoría del examen (ordinario/extraordinario) "quiztype": TIpo de examen "quiznumquestion": Numero de preguntas "quizavailability": Bandera para saber si esta habilitado el examen "quizstartdate": Fecha de apertura "quizenddate": Fecha de cierre "quizgrade": Calificación del examen "quizpdfurl": URL de la revisión "quizpdfurlavailable": Bandera para identificar si está disponible la revisión del examen //Forums "forumid": ID del foro "forumopen": Fecha de apertura "speaker": Responsable del foro "urlattachedcontent": [ "url": URL de archivo ] "forumstartdate": Estado del foro "forumenddate": Fecha de apertura "forumstate": Fecha de cierre "correcion": Bandera para determinar si ya está calificado el foro "forumgrade": Calificación del foro "forummaxgrade": Calificación máxima del foro //Cases "casoid": ID del caso "casecategoryid": Categoría del caso "casetypeid": Tipo de caso "statement": Estado del caso "session_link": URL de la sesión "startdate": Fecha de apertura "enddate": Fecha de cierre "deadline": Fecha limite "dateid": ID de la fecha "extraordinarydateid": ID de fecha extraordinaria "casestate": EStado del caso "userDeliveryDate": Fecha de entrega "userDelivery": URL del archivo "teacherCorrection": URL de la corrección del tutor "casograde": Calificación del caso "casomaxgrade": Calificación máxima del caso "comment": Comentario del tutor "tfm": [ "tfm_forum_id": ID del foro de TFM "new_message": Notificación de nuevo mensaje en el foro de TFM "fintalTFMdate": Fecha de cierre del TFM "proposal": [ "proposalid": ID de propuesta "title": Nombre de la propuesta "description": Descripcion de la propuesta "status": Estado de la propuesta "dateid": ID de fecha "startdate": Fecha de apertura para la propuesta "enddate": Fecha de cierre para la propuesta "deadline": Fecha limite para la propuesta "tfmtypes": [ "tfmtypeid": ID de tipo de TFM "typename": Nombre del tipo de TFM "freetopic": Bandera para indicar si contiene tema libre "topics": [ "id": ID de tema "title": Nombre del tema ] "typedelivery": Tipo de entrega "members": Numero de miembros ] ] "deliveries": [ "cmid": ID de la actividad "status": Estado de la entrega "name": Nombre de la entrega "description": Descripcion de la entrega "deliverytype": Tipo de entrega "dateid": ID de fecha "startdate": Fecha de apertura para la entrega "enddate": Fecha de cierre para la entrega "deadline": Fecha limite para la entrega ] "defenses": [ "cmid": ID de la actividad "defenseid": ID de defensa "name": Nombre de la defensa "deliverytype": Tipo de entrega "startdate": Fecha de apertura para la defensa "timezone": Zona horaria "url": Link de acceso a la sesión ] "extraordinary_deliveries"[ "cmid": ID de la actividad "status": Estado de la actividad extraordinaria "name": Nombre de la actividad extraordinaria "description": Descripcion de la actividad extraordinaria "deliverytype": Tipo de la actividad extraordinaria "extraordinarydateid": ID de fecha para la actividad extraordinaria "startdate": Fecha de apertura para la actividad extraordinaria "enddate": Fecha de cierre para la actividad extraordinaria ] ] ] ]}2. Obtener secciones del curso
- local_servicerefactor_course_get_sections
Descripción: Obtiene la lista de secciones (temas) del curso con información sobre su estado de completitud, fechas de apertura y disponibilidad de certificados.
Endpoint: local_servicerefactor_course_get_sections
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_course_get_sections
- courseid: int | ID del curso
- groupid: int | ID del grupo
- userid: int | ID del usuario
- lang: string | Idioma (por defecto ‘es’)
Respuestas:
Devuelve el array de secciones directamente
{ 'id': ID del módulo 'titulo': Nombre del módulo 'descripcion': Descripcion del módulo 'examen_parcial': Indicador de examen parcial en el módulo 'tfm_disponible': Indicador de tfm en el módulo 'modulo_completado': Indicador si el módulo está completo 'orden_modulo': Orden del módulo 'apertura_modulo': Fecha de apertura del módulo 'modularizado': Indicador si es módulo modularizado 'flag_apertura_modulo': Bandera para indicar si el módulo ya está abierto al alumno 'contenidos_vistos': Número de contenidos vistos 'contenidos_modulo': Número de contenidos en el módulo 'certificado_disponible': Bandera para indicar si el certificado está disponible para el alumno}3. Obtener certificado del curso
- local_servicerefactor_get_course_certificate
Descripción: Genera y devuelve la URL del certificado del curso para un usuario específico.
Endpoint: local_servicerefactor_get_course_certificate
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_course_certificate
- courseid: int | ID del curso
- userid: int | ID del usuario
- skin: string | Identificador del diseño (skin)
- idioma: string | Idioma del certificado
Respuestas:
Devuelve la URL del PDF generado
{ "url": URL del certificado}4. Obtener subtítulos de video
- local_servicerefactor_get_video_subtitles
Descripción: Busca y lista los archivos de subtítulos disponibles (VTT/SRT) para un contenido de video alojado en S3/Cloudfront.
Endpoint: local_servicerefactor_get_video_subtitles
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_servicerefactor_get_video_subtitles
- urlcontent: string | URL completa del video
Respuestas:
Devuelve lista de subtítulos encontrados
{ "status": 200, "code": 0, "message": "", "body": [ "ruta": URL de ruta de los subtitulos "srclang": Idioma abreviado (es, en, pt, etc.) "label": Idioma ]}Error de conexión con S3
{ "status": 500, "code": 1, "message": "erro in subtitles", "body": []}