Guía para el desarrollador del módulo local/lpi
En construcción
Esta guía está en construcción
Integración de aplicaciones externas: Integration Service
El módulo publica un API a través de la funcionalidad de Servicios Externos de Moodle. Nuestra aplicación de gestión de licencias utiliza depende de la activación del protocolo REST en Moodle.
Todas las funciones tienen dos parámetros comunes:
wsfunction. string. Este parámetro tomará el valor de la columna Función de la tabla de más abajo.
wstoken. string. Es un token de autenticación que facilitará el administrador Moodle. Por motivos de seguridad, es recomendable que este parámetro se pase por POST.
moodlewsrestformat. string. El formato de respuesta que esperamos. Puede tomar los valores 'xml' o 'json'. Nosotros utilizaremos json.
Función | Parámetros | Salida | Descripción |
|---|---|---|---|
local_lpi_get_pending_files |
| Array de objetos con los siguientes campos:
| Obtiene un listado paginado de peticiones de tramitación de licencias. Únicamente obtiene los metadatos de aquellos datos de ficheros que han sido clasificados en la opción "Es una obra completa (o fragmento superior al 10%) para la que no tengo autorización o licencia (tramitación de licencia con coste económico)". |
local_lpi_get_file_metadata |
| Array de objetos con los siguientes campos:
| Obtiene todos los metadatos asociados a un fichero en concreto que se encuentre en el estado de espera de tramitación de licencia. Es decir, que haya sido catalogado por el profesorado como "Es una obra completa (o fragmento superior al 10%) para la que no tengo autorización o licencia (tramitación de licencia con coste económico)". |
local_lpi_set_file_authorization |
| Objeto con las siguientes propiedades:
| Permite establecer el contenido de un fichero y la autorización o no para publicarlo siempre y cuando éste haya sido catalogado como "Es una obra completa (o fragmento superior al 10%) para la que no tengo autorización o licencia (tramitación de licencia con coste económico)".
|
Integración de aplicaciones externas: Audit Service
El servicio de auditoría permite obtener información sobre la catalogación de ficheros a las entidades de gestión de derechos.
Función | Parámetros | Salida | Descripción |
|---|---|---|---|
get_auditable_file_metadata |
| Array de objetos con los siguientes campos:
| Obtiene un listado de metadatos de ficheros auditables. Son auditables aquellos ficheros que no hayan sido clasificados como documentos administrativos y que hayan sido tramitados.
|
Tratamiento de errores
Detectaremos un error si se cumple alguna de las siguientes condiciones:
Se devuelve un HTTP Status Code distinto a 200.
Se devuelve un HTTP Status Code de 200 y en el cuerpo de la respuesta uno de los campos es errorcode.
Para el segundo campo, podemos obtener más información:
errorcode. Un código de error
message. Un mensaje de error
exception. La excepción que se ha lanzado
Decarga de ficheros
La llamada de obtención de ficheros es especial. No podemos utilizar las APIs que ya existen en Moodle por lo resquisitos de seguridad que tienen las nuestras. En particular, NO se pueden descargar ficheros que no estén declarados como duda.
$ curl MOODLE_WWWW_ROOT/local/lpi/download_file.php?token=ELTOKEN&id=ID_DEL_METADATOSi todo ha ido bien, devolverá el contenido del fichero con el content-type correspondiente.
Si ocurre un error obtenemos un json como el indicado en la sección "Tratamiento de errores".
Ejemplos de peticiones
Obtener la primera página de ficheros pendientes de revisar de 100 en 100:
$ curl MOODLE_WWWW_ROOT/webservice/rest/server.php?wsfunction=local_lpi_get_pending_files&wstoken=EL_TOKEN_MOODLE&moodlewsrestformat=json&page=0&count=100&search=Obtener la segunda página de ficheros pendientes de revisar de 100 en 100:
$ curl MOODLE_WWWW_ROOT/webservice/rest/server.php?wsfunction=local_lpi_get_pending_files&wstoken=EL_TOKEN_MOODLE&moodlewsrestformat=json&page=1&count=100&search=Obtener los metadatos detallados de un metadato con id 2
$ curl MOODLE_WWWW_ROOT/webservice/rest/server.php?wsfunction=local_lpi_get_file_metadata&wstoken=EL_TOKEN_MOODLE&moodlewsrestformat=json&id=1
Establecer estados de metadatos:
Ejemplos de respuestas