TFM
1. Crear TFM
- local_contentdata_create_tfm
Descripción: Servicio para crear un nuevo modelo de TFM en el curso.
Endpoint: local_contentdata_create_tfm
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_tfm
- usertoken: string | token del usuario
- courseid: int | ID del curso
- name: string | Nombre del TFM
- description: string | Descripción del TFM (Opcional)
- responsible: string | IDs de los responsables separados por ”,”
Respuestas:
Se creó el TFM
{ "status": 201, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error de permisos al guardar archivos
{ "status": 403, "code": 4, "message": "permissions in localfile"}2. Obtener modelos de TFM del curso
- local_contentdata_get_course_tfm_models
Descripción: Servicio para obtener la lista de modelos de TFM de un curso.
Endpoint: local_contentdata_get_course_tfm_models
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_course_tfm_models
- usertoken: string | token del usuario
- courseid: int | ID del curso
Respuestas:
Se obtiene la lista de modelos
{ "status": 200, "code": 0, "message": "", "body": [ "id": ID del modelo, "name": Nombre del modelo de TFM ]}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}3. Obtener información de un TFM
- local_contentdata_get_tfm_info
Descripción: Servicio para obtener la información detallada de un TFM específico, incluyendo archivos y responsables.
Endpoint: local_contentdata_get_tfm_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_info
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del TFM
Respuestas:
Se obtiene la información detallada
{ "status": 200, "code": 0, "message": "", "body": { "tfmid": ID de TFM "name": Nombre del TFM "description": Descripción del TFM "responsible": [ "userid": ID de usuario responsable de TFM "name": Nombre del responsable "email": Email del responsable ], "files": [ "fileid": ID del archivo "name": Nombre del archivo "url": Dirección URL ] }}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 2, "message": "Course not found", "body": []}Error producido si no se encontró el TFM
{ "status": 404, "code": 3, "message": "TFM not found", "body": []}4. Actualizar información de TFM
- local_contentdata_update_tfm_info
Descripción: Servicio para actualizar los datos, responsables y archivos de un TFM.
Endpoint: local_contentdata_update_tfm_info
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_info
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del TFM
- name: string | Nombre del TFM
- description: string | Descripción del TFM
- responsible: string | IDs de responsables separados por ”,”
- filesdelete: string | IDs de archivos a eliminar separados por ”,” (Opcional)
Respuestas:
Se actualizó el TFM
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error producido si no se encontró el TFM
{ "status": 404, "code": 4, "message": "TFM not found", "body": []}5. Eliminar TFM
- local_contentdata_delete_tfm
Descripción: Servicio para eliminar un TFM y todos sus datos relacionados (propuestas, entregas, archivos).
Endpoint: local_contentdata_delete_tfm
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del TFM
Respuestas:
Se eliminó el TFM
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error producido si no se encontró el TFM
{ "status": 404, "code": 3, "message": "TFM not found"}6. Crear tipo de TFM
- local_contentdata_create_tfm_type
Descripción: Servicio para crear una tipología de TFM dentro de una propuesta.
Endpoint: local_contentdata_create_tfm_type
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_tfm_type
- usertoken: string | token del usuario
- proposalid: int | ID de la propuesta
- name: string | Nombre del tipo de TFM
- freetopic: int | Incluye tema libre (0 o 1)
- topics: array | Array de objetos con los temas
- typedelivery: int | Tipo de entrega
- members: int | Número de miembros (Opcional)
Respuestas:
Se creó el tipo de TFM
{ "status": 201, "code": 0, "message": "", "body": { "tfmtypeid": ID del tipo de TFM }}Error producido si no se encontró la propuesta
{ "status": 404, "code": 2, "message": "TFM proposal not found", "body": []}Error si se requiere al menos un tema
{ "status": 404, "code": 3, "message": "At least one topic is required", "body": []}7. Actualizar tipo de TFM
- local_contentdata_update_tfm_type
Descripción: Servicio para modificar un tipo de TFM y sus temas asociados.
Endpoint: local_contentdata_update_tfm_type
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_type
- usertoken: string | token del usuario
- tfmtypeid: int | ID del tipo de TFM
- name: string | Nombre del tipo
- freetopic: int | Incluye tema libre (0 o 1)
- topics: array | Estructura:
[{ "topicid": int (opcional), "topic": string, "deletetopic": int (opcional) }] - typedelivery: int | Tipo de entrega
- members: int | Número de miembros (Opcional)
Respuestas:
Se actualizó el tipo
{ "status": 200, "code": 0, "message": ""}Error producido si no se encontró el tipo de TFM
{ "status": 403, "code": 2, "message": "TFM type not found"}Error si se requiere al menos un tema
{ "status": 404, "code": 3, "message": "At least one topic is required", "body": []}8. Eliminar tipo de TFM
- local_contentdata_delete_tfm_type
Descripción: Servicio para eliminar un tipo de TFM y sus temas.
Endpoint: local_contentdata_delete_tfm_type
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm_type
- usertoken: string | token del usuario
- tfmtypeid: int | ID del tipo de TFM
Respuestas:
Se eliminó el tipo
{ "status": 200, "code": 0, "message": ""}Error producido si no se encontró el tipo de TFM
{ "status": 403, "code": 2, "message": "TFM type not found"}Error producido si no se pudo eliminar
{ "status": 400, "code": 3, "message": "Could not delete tfm type"}9. Crear propuesta de TFM
- local_contentdata_create_tfm_proposal
Descripción: Servicio para crear una propuesta asociada a un modelo de TFM.
Endpoint: local_contentdata_create_tfm_proposal
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_tfm_proposal
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del modelo TFM
- title: string | Título de la propuesta
- description: string | Descripción (Opcional)
Respuestas:
Se creó la propuesta
{ "status": 201, "code": 0, "message": "", "body": { "proposalid": ID de la propuesta creada }}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found", "body": []}10. Obtener lista de propuestas
- local_contentdata_get_tfm_proposals
Descripción: Obtiene un listado simple de las propuestas asociadas a un TFM.
Endpoint: local_contentdata_get_tfm_proposals
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_proposals
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del modelo TFM
Respuestas:
Se obtine la información.
{ "status": 200, "code": 0, "message": "", "body": [ { "proposalid": ID de propuesta, "title": Nombre de la propuesta } ]}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found", "body": []}11. Información detallada de propuesta
- local_contentdata_get_tfm_proposal_info
Descripción: Obtiene la información completa de una propuesta, incluyendo sus tipos y tópicos asociados.
Endpoint: local_contentdata_get_tfm_proposal_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_proposal_info
- usertoken: string | token del usuario
- courseid: int | ID del curso
- proposalid: int | ID de la propuesta
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "proposalid": ID de propuesta "title": Nombre de la propuesta "description": Descripcion de 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 del tema "title": NOmbre del tema ], "typedelivery": Tipo de entrega "members": Numero de miembros ] }}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error si la propuesta no existe
{ "status": 404, "code": 4, "message": "TFM proposal not found", "body": []}12. Actualizar propuesta
- local_contentdata_update_tfm_proposal
Descripción: Actualiza el título y descripción de una propuesta existente.
Endpoint: local_contentdata_update_tfm_proposal
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_proposal
- usertoken: string | token del usuario
- courseid: int | ID del curso
- proposalid: int | ID de la propuesta
- title: string | Nuevo título
- description: string | Nueva descripción (Opcional)
Respuestas:
Se actualizó la información
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}13. Eliminar propuesta
- local_contentdata_delete_tfm_proposal
Descripción: Elimina una propuesta, incluyendo sus tipos y tópicos asociados.
Endpoint: local_contentdata_delete_tfm_proposal
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm_proposal
- usertoken: string | token del usuario
- courseid: int | ID del curso
- proposalid: int | ID de la propuesta
Respuestas:
Se eliminó la propuesta
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}14. Crear entrega de TFM
- local_contentdata_create_tfm_delivery
Descripción: Crea una nueva actividad de entrega (ordinaria o final) asociada al TFM.
Endpoint: local_contentdata_create_tfm_delivery
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_tfm_delivery
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del modelo TFM
- title: string | Título de la entrega
- description: string | Descripción (Opcional)
- deliverytype: int | 1 para ordinaria, 2 para final, 4 para extraordinaria (Por defecto: 1)
Respuestas:
Se creó la actividad
{ "status": 201, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}15. Obtener entregas
- local_contentdata_get_tfm_deliveries
Descripción: Listar las entregas configuradas para un modelo de TFM.
Endpoint: local_contentdata_get_tfm_deliveries
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_deliveries
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del modelo TFM
Respuestas:
Se obtiene la lista de entregas del TFM
{ "status": 200, "code": 0, "message": "", "body": [ "tfmdeliveryid": ID de entrega "name": Nombre de la entrega "deliverytype": Tipo de entrega ]}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encontró el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}16. Información de entrega
- local_contentdata_get_tfm_delivery_info
Descripción: Obtiene detalles de una entrega específica.
Endpoint: local_contentdata_get_tfm_delivery_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_delivery_info
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmdeliveryid: int | ID de la entrega
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "tfmdeliveryid": ID de la entrega "title": Nombre de la entrega "description": Descripción "deliverytype": Tipo de entrega }}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error si no se encontró la entrega
{ "status": 404, "code": 4, "message": "Delivery not found", "body": []}17. Actualizar entrega
- local_contentdata_update_tfm_delivery
Descripción: Modifica los datos de una entrega existente.
Endpoint: local_contentdata_update_tfm_delivery
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_delivery
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmdeliveryid: int | ID de la entrega
- title: string | Título
- description: string | Descripción
- deliverytype: int | Tipo de entrega (1 o 2)
Respuestas:
Se actualizó la entrega
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encuentró la entrega
{ "status": 404, "code": 4, "message": "TFM model not found"}18. Eliminar entrega
- local_contentdata_delete_tfm_delivery
Descripción: Elimina una configuración de entrega.
Endpoint: local_contentdata_delete_tfm_delivery
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm_delivery
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmdeliveryid: int | ID de la entrega
Respuestas:
Se eliminó la entrega
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encuentró la entrega
{ "status": 404, "code": 4, "message": "TFM model not found"}19. Gestionar grupos del TFM
- local_contentdata_manager_tfm_groups
Descripción: Asigna o elimina el TFM (y sus actividades) a grupos específicos dentro del curso. Crea secciones y calendario si es necesario.
Endpoint: local_contentdata_manager_tfm_groups
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_manager_tfm_groups
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del modelo TFM
- groupsadd: string | IDs de grupos donde añadir el TFM, separados por ”,” (Opcional)
- groupsdelete: string | IDs de grupos de donde eliminar el TFM, separados por ”,” (Opcional)
Respuestas:
Se completo el proceso correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encuentra el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}20. Copiar TFM
- local_contentdata_copy_tfm
Descripción: Clona un modelo de TFM completo (incluyendo archivos, propuestas y entregas) de un curso a otro.
Endpoint: local_contentdata_copy_tfm
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_copy_tfm
- usertoken: string | token del usuario
- fromcourseid: int | ID del curso origen
- tocourseid: int | ID del curso destino
- tfmid: int | ID del modelo TFM a copiar
Respuestas:
Se copio el TFM correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si no se encuentra el modelo
{ "status": 404, "code": 4, "message": "TFM model not found"}21. Crear defensa de TFM
- local_contentdata_create_tfm_defense
Descripción: Crear una defensa de TFM para usuarios o equipos específicos.
Endpoint: local_contentdata_create_tfm_defense
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_create_tfm_defense
- usertoken: string | token del usuario
- courseid: int | ID del curso padre
- groupid: int | ID del grupo
- usersids: string | IDs de usuarios separados por ”,” (Opcional)
- teamsids: string | IDs de equipos separados por ”,” (Opcional)
- date: string | Fecha de la defensa
- timezone: string | Zona horaria
- url: string | URL de la videollamada
Respuestas:
Se creó la defensa de TFM
{ "status": 201, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si el grupo no pertenece al curso
{ "status": 404, "code": 4, "message": "Group not found"}Error si la promoción no tiene un TFM asignado
{ "status": 404, "code": 5, "message": "This promotion does not have a TFM"}22. Obtener defensas
- local_contentdata_get_tfm_defenses
Descripción: Lista las defensas programadas en un grupo.
Endpoint: local_contentdata_get_tfm_defenses
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_defenses
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": [ { "defenseid": ID de defensa "date": Fecha de la defensa "timezone": Zona horaria "user": [ "userid": ID de usuario "fullname": Nombre del usuario "email": Email del usuario ] "team": [ "userid": ID de usuario "fullname": Nombre del usuario "email": Email del usuario ] } ]}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error si el grupo no pertenece al curso
{ "status": 404, "code": 4, "message": "Group not found"}Error si la promoción no tiene un TFM asignado
{ "status": 404, "code": 5, "message": "This promotion does not have a TFM"}23. Información de una defensa
- local_contentdata_get_tfm_defense_info
Descripción: Obtiene los detalles completos de una defensa específica.
Endpoint: local_contentdata_get_tfm_defense_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_defense_info
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- defenseid: int | ID de la defensa
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "defenseid": ID de defensa "cmid": ID de actividad (cmid) "date": Fecha "timezone": Zona horaria "url": URL "user": [ "userid": ID de usuario "fullname": Nombre del usuario "email": Email del usuario ] "teamid" : ID de equipo "team": [ "userid": ID de usuario "fullname": Nombre del usuario "email": Email del usuario ] }}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied", "body": []}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type", "body": []}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}24. Actualizar defensa
- local_contentdata_update_tfm_defense
Descripción: Actualiza la fecha, hora o URL de una defensa.
Endpoint: local_contentdata_update_tfm_defense
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_defense
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- defenseid: int | ID de la defensa
- date: string | Nueva fecha (Opcional)
- timezone: string | Nueva zona horaria (Opcional)
- url: string | Nueva URL (Opcional)
Respuestas:
Se actualizó correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error producido si no se encontró la defensa
{ "status": 404, "code": 4, "message": "Defense not found"}25. Eliminar defensa
- local_contentdata_delete_tfm_defense
Descripción: Elimina una defensa programada.
Endpoint: local_contentdata_delete_tfm_defense
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm_defense
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- defenseid: int | ID de la defensa
Respuestas:
Se eliminó correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si el usuario no tiene permisos
{ "status": 403, "code": 1, "message": "Permission denied"}Error producido si el tipo de curso es incorrecto (no es Máster)
{ "status": 400, "code": 2, "message": "Incorrect course type"}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found"}Error producido si no se encontró la defensa
{ "status": 404, "code": 4, "message": "Defense not found"}26. Obtener actividades extraordinarias
- local_contentdata_get_tfm_extraordinary_activities
Descripción: Obtiene la lista de actividades de tipo extraordinario configuradas en el TFM.
Endpoint: local_contentdata_get_tfm_extraordinary_activities
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_extraordinary_activities
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
Se obtiene la lista correctamente
{ "status": 200, "code": 0, "message": "", "body": [ { "cmid": ID de la actividad (cmid) "name": Nombre de la actividad "deliverytype": Tipo de entrega } ]}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found", "body": []}Error si el curso no tiene TFM asignado
{ "status": 404, "code": 3, "message": "The course does not have a TFM", "body": []}27. Obtener información del grupo de TFM
- local_contentdata_get_tfm_group
Descripción: Devuelve toda la estructura del TFM para un grupo: fechas, propuestas, entregas ordinarias y extraordinarias.
Endpoint: local_contentdata_get_tfm_group
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_group
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "tfmid": ID de TFM "fintalTFMdate": Fecha de cierre de TFM "proposal": [ "proposalid": ID de propuesta "name": Nombre de la propuesta "dateid": ID de fecha "startdate": Fecha de inicio "enddate": Fecha de cierre "deadline": Fecha limite ], "deliveries": [ "cmid": ID de actividad (cmid) "dateid": ID de fecha "name": Nombre de la actividad "startdate": Fecha de inicio "enddate": Fecha de cierre "deadline": Fecha limite ], "extraordinary_deliveries": [ "cmid": ID de actividad (cmid) "assigneduserid": ID de usuario asignado a la actividad "assignedusername": Nombre de usuario asignado a la actividad "assigneduseremail": Email de usuario asignado a la actividad "name": Nombre de la actividad "extraordinarydateid": ID de fecha extraordinaria "startdate": Fecha de inicio "enddate": Fecha de cierre "deliverytype": Tipo de entrega "teamid": ID de equipo "team" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] ] }}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found", "body": []}Error si el curso no tiene TFM asignado
{ "status": 404, "code": 3, "message": "The course does not have a TFM", "body": []}28. Obtener propuestas de usuarios
- local_contentdata_get_users_proposals
Descripción: Obtiene las propuestas enviadas por los usuarios o equipos en un grupo específico.
Endpoint: local_contentdata_get_users_proposals
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_users_proposals
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- proposalid: int | ID de la propuesta
Respuestas:
{ "status": 200, "code": 0, "message": "0", "body": { "proposals": [ { "deliveryid": ID de entrega "proposalid": ID de propuesta "team" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "team" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "authorships" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "status": Estado de la entrega "date": Fecha de la entrega "url": URL de la entrega "tfm_forum_id": ID del foro de TFM "new_message": Notificación de nuevo mensaje en el foro } ], "users": [ //Usuarios sin propuestas o sin equipo "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] }}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found", "body": []}29. Obtener información de propuesta de usuario
- local_contentdata_get_user_proposal_info
Descripción: Devuelve el detalle de una propuesta específica de un alumno o equipo, incluyendo autores, tipo, tema y estado.
Endpoint: local_contentdata_get_user_proposal_info
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_user_proposal_info
- usertoken: string | token del usuario
- proposalid: int | ID de la propuesta
- userid: int | ID del usuario
Respuestas:
{ "status": 200, "code": 0, "message": "0", "body": { "deliveryid": ID de entrega "topicid": ID de tema elegido "topic": Nombre del tema "url": URL de entrega "authorships" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "delivery_date": Fecha de entrega "typeid": Tipo de TFM "typedelivery": Tipo de entrega "type_name": Nombre del tipo de TFM "status": Estado de la entrega "startdate": Fecha de apertura de la propuesta "enddate": Fecha de cierre de la propuesta "leader": Lider del equipo "user"[ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "members": Numero de miembros en el equipo "team"[ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "tfm_forum_id": ID del foro de TFM "new_message": Notificación de nuevo mensaje en el foro }}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found", "body": []}Error producido si no se encontró la propuesta
{ "status": 404, "code": 2, "message": "User proposal not found", "body": []}30. Actualizar estado de propuesta de estudiante
- local_contentdata_update_student_proposal_status
Descripción: Permite al tutor o administrador cambiar el estado de una propuesta (ej. aceptar, rechazar), gestionar miembros de equipo y dejar comentarios.
Endpoint: local_contentdata_update_student_proposal_status
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_student_proposal_status
- courseid: int | ID del curso
- groupid: int | ID del grupo
- deliveryid: int | ID de la entrega de propuesta
- status: int | Nuevo estado
- userid: int | ID del usuario
- comment: string | Comentario (Opcional)
- authorships: string | IDs de autores separados por ”,” (Opcional)
- members: string | IDs de miembros de equipo separados por ”,” (Opcional)
Respuestas:
Se cambio correctamente el estado de la propuesta
{ "status": 200, "code": 0, "message": "0"}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found"}```Error si no se encuentra la propuesta del alumno```js{ "status": 404, "code": 2, "message": "User proposal not found"}Error si el usuario ya pertenece a otro equipo
{ "status": 404, "code": 2, "message": "User X already belongs to a team"}31. Actualizar fechas de propuesta
- local_contentdata_update_proposal_date
Descripción: Modifica las fechas de inicio, fin y límite de una propuesta en el calendario.
Endpoint: local_contentdata_update_proposal_date
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_proposal_date
- proposalid: int | ID de la propuesta
- dateid: int | ID del registro de fecha
- starttime: string | Fecha de inicio (Y-m-d\TH:i)
- endtime: string | Fecha de fin (Y-m-d\TH:i)
- deadline: string | Fecha límite (Y-m-d\TH:i)
Respuestas:
Se actualizaron correctamente las fechas
{ "status": 200, "code": 0, "message": "0"}Error producido si no se encontró la propuesta
{ "status": 404, "code": 1, "message": "Proposal not found"}Error producido si no se encontró el registro de fechas de la propuesta
{ "status": 404, "code": 2, "message": "Proposal dates not found"}32. Publicar comentario en foro de TFM
- local_contentdata_post_tfm_forum_comment
Descripción: Publica un comentario en el foro asociado a una entrega o propuesta de TFM. Permite subir archivos.
Endpoint: local_contentdata_post_tfm_forum_comment
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_post_tfm_forum_comment
- usertoken: string | token del usuario
- tfm_forum_id: int | ID del foro (generalmente ID de la propuesta/entrega)
- userid: int | ID del autor
- comment: string | Texto del comentario
- refenceCommentid: int | ID del comentario padre (si es respuesta) (Opcional)
- Files: (Multipart/form-data) Archivos adjuntos
Respuestas:
Devuelve el comentario creado
{ "status": 200, "code": 0, "message": "0", "body": [ "commentid": ID de comentario "user" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "message": Mensaje "date": Fecha en que se envió el mensaje "referenceComment" [ "commentid" ID del comentario al que responde "user" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "message": Mensaje al que hace referencia "date": Fecha del mensaje al que hacer referencia "filename": Nombre del archivo (si es que el mensaje incluye un archivo) ] "file"[ "id": ID del archivo "url": URL del archivo "name": Nombre del archivo ] ]}Error producido si no se encontró la el foro de comentarios
{ "status": 404, "code": 1, "message": "User forum not found", "body": []}33. Actualizar comentario de foro
- local_contentdata_update_tfm_forum_comment
Descripción: Edita el texto de un comentario existente.
Endpoint: local_contentdata_update_tfm_forum_comment
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_update_tfm_forum_comment
- commentid: int | ID del comentario
- comment: string | Nuevo texto
Respuestas:
El comentario se actualizó con éxito
{ "status": 200, "code": 0, "message": "0"}Error producido si no se encontró el comentario
{ "status": 404, "code": 1, "message": "Comment not found"}34. Eliminar comentario de foro
- local_contentdata_delete_tfm_forum_comment
Descripción: Elimina un comentario y sus archivos adjuntos si los tiene.
Endpoint: local_contentdata_delete_tfm_forum_comment
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_delete_tfm_forum_comment
- commentid: int | ID del comentario
Respuestas:
Se eliminó el comentario
{ "status": 200, "code": 0, "message": "0"}Error producido si no se encontró el comentario
{ "status": 404, "code": 1, "message": "Comment not found"}35. Obtener foro de TFM
- local_contentdata_get_tfm_forum
Descripción: Obtiene el hilo de conversación (comentarios) asociado a una propuesta o entrega.
Endpoint: local_contentdata_get_tfm_forum
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_forum
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- tfm_forum_id: int | ID del foro
- page: int | Número de página (paginación)
- commentid: int | ID de comentario específico (Opcional)
Respuestas:
Se obtiene el foro de TFM
{ "status": 200, "code": 0, "message": "", "body": { "tfm_forum_id": ID del foro "page": Número de pagina de mensajes "team_members":[ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "comments": [ "commentid": ID de comentario "user" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "message": Mensaje "date": Fecha en que se envió el mensaje "update_date": Fecha en que se edito el mensaje (opcional) "referenceComment" [ "commentid" ID del comentario al que responde "user" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "message": Mensaje al que hace referencia "date": Fecha del mensaje al que hacer referencia "filename": Nombre del archivo (si es que el mensaje incluye un archivo) ] "file"[ "id": ID del archivo "url": URL del archivo "name": Nombre del archivo ] ] }}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró la el foro de comentarios
{ "status": 404, "code": 2, "message": "User forum not found", "body": []}36. Obtener entrega de estudiante
- local_contentdata_get_student_delivery
Descripción: Obtiene el estado, calificación y archivo de una entrega específica de un alumno (o equipo).
Endpoint: local_contentdata_get_student_delivery
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_student_delivery
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- userid: int | ID del usuario
- cmid: int | ID del módulo del curso (actividad)
- extraordinarydateid: int | ID de fecha extraordinaria (Opcional)
Respuestas:
Se obtiene la información de la entrega
{ "status": 200, "code": 0, "message": "0", "body": { "deliverytitle": Nombre de la entrega "activityid": ID de actividad (cmid) "deliveryid": ID de entrega "grade": Calificación de la entrega "topicid": ID del tema de TFM "topic": Nombre del tema de TFM "url": URL de archivo entregado "authorships"[ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "delivery_date": Fecha de entrega "typeid": ID del tipo de entrega "typedelivery": Tipo de entrega "type_name": Nombre del tipo de entrega "status": Estado de la entrega "startdate": Fecha de apertura para la entrega "enddate": Fecha de cierre para la entrega "leader": Fecha limite de entrega "user": [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "members": Número de miembro de equipo "teamid": ID de equipo "team" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "tfm_forum_id": ID del foro de TFM "new_message": Notificación de nuevo mensaje }}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found", "body": []}Error producido si no se encontró la propuesta del usuario
{ "status": 404, "code": 2, "message": "User proposal not found", "body": []}37. Guardar calificación de entrega
- local_contentdata_save_tfm_delivery_grade
Descripción: Guarda la nota y el archivo de corrección para una entrega de alumno o equipo.
Endpoint: local_contentdata_save_tfm_delivery_grade
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_save_tfm_delivery_grade
- courseid: int | ID del curso
- groupid: int | ID del grupo
- cmid: int | ID de la actividad
- grade: float | Calificación (0-10)
- userid: int | ID del usuario (Opcional si es equipo)
- teamid: int | ID del equipo (Opcional si es individual)
- extraordinarydateid: int | ID fecha extraordinaria (Opcional)
- Files: (Multipart) Archivo de corrección
Respuestas:
Se actualizó la calificacion correctamente
{ "status": 200, "code": 0, "message": ""}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}Error producido si no se encontró la actividad
{ "status": 404, "code": 3, "message": "Activity not found"}38. Obtener equipos de TFM
- local_contentdata_get_tfm_teams
Descripción: Lista todos los equipos formados y los usuarios con propuestas individuales aprobadas en un grupo.
Endpoint: local_contentdata_get_tfm_teams
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_tfm_teams
- courseid: int | ID del curso
- groupid: int | ID del grupo
Respuestas:
Se obtuvo la lista de equipos
{ "status": 200, "code": 0, "message": "", "body": [ "teamid": ID de equipo "users": [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ]}Error producido si no se encontró el curso
{ "status": 404, "code": 1, "message": "Course not found"}Error producido si no se encontró el grupo
{ "status": 404, "code": 2, "message": "Group not found"}39. Marcar notificación como leída
- local_contentdata_read_notification
Descripción: Actualiza el registro de lectura de comentarios en el foro para el usuario.
Endpoint: local_contentdata_read_notification
Método: POST
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_read_notification
- tfmforumid: int | ID del foro
- userid: int | ID del usuario
- commentid: int | ID del último comentario leído
Respuestas:
Se actualizó la notificación
{ "status": 200, "code": 0, "message": ""}40. Obtener entregas de estudiantes (Listado)
- local_contentdata_get_students_deliveries
Descripción: Obtiene un listado de todas las entregas realizadas para una actividad específica en el grupo, incluyendo usuarios individuales y equipos.
Endpoint: local_contentdata_get_students_deliveries
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_students_deliveries
- usertoken: string | token del usuario
- courseid: int | ID del curso
- groupid: int | ID del grupo
- cmid: int | ID de la actividad
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": { "deliveries": [ "deliveryid": ID de entrega "cmid": ID de actividad (cmid) "teamid": ID de equipo "user": [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "team" [ "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] "status": Estado de la entrega "date": Fecha de entrega "url": URL de archivo entregado "tfm_forum_id": ID del foro de TFM "new_message": Notificación de nuevo mensaje ], "users": [ //Usuarios sin entregas o sin equipo "userid": ID de usuario "fullname": Nombre de usuario "email": Email de usuario ] }}41. Obtener lista de promociones que tienen un modelo de TFM especifico
- local_contentdata_get_groups_tfm
Descripción: Obtiene un listado de las promociones que tienen asignado un modelo de TFM especifico.
Endpoint: local_contentdata_get_groups_tfm
Método: GET
Argumentos:
- wstoken: string | token de Manager
- moodlewsrestformat: json | formato de la respuesta
- wsfunction: string | local_contentdata_get_groups_tfm
- usertoken: string | token del usuario
- courseid: int | ID del curso
- tfmid: int | ID del TFM
Respuestas:
{ "status": 200, "code": 0, "message": "", "body": [ "groupid" : ID de grupo "name" Nombre del grupo ]}Error producido si no se encontró el curso
{ "status": 404, "code": 3, "message": "Course not found", "body": []}Error si no se encuentra el modelo
{ "status": 404, "code": 4, "message": "TFM model not found", "body": []}