Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel

Table of Contents
maxLevel1
typeflat

...

Info

Usar codificación de caracteres UTF-8 en el envío de datos

Información del Manual de autenticación y versionado:Básicos (español manual (autenticación y versionado)


Note

Por motivos de seguridad el external_id no puede contener los caracteres \ ni /  (http://tomcat.apache.org/security-6.html).

...

  • external_id = Id externo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 
  • username = Nombre de usuario (String, obligatorio)
  • password = Contraseña de usuario (String, opcional)
    • Valor por defecto = vacía
  • firstName = Nombre (String, obligatorio)
  • lastName = Apellidos (String, obligatorio)
  • preferredLanguage = Idioma predeterminado (String, obligatorio)
    • Valores permitidos = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
  • personTimezoneId = Zona horaria (String, obligatorio)
    • Valor por defecto:
      • El correspondiente al campo "PlatformTimezone" en la tabla "configurationSettings", el valor actual es "Europe/Paris"
      • Si este no existe, se usa el valor definido en la variable de configuración "configuration.settings.default.timezone", el valor actual es "Etc/GMT"
    • Valores permitidos: 
      • Etc/GMT+12, Etc/GMT+11, Pacific/Honolulu, America/Anchorage, America/Tijuana, America/Los_Angeles, America/Phoenix, America/Chihuahua, America/Denver, America/Guatemala, America/Chicago, America/Mexico_City, America/Regina, America/Bogota, America/New_York, America/Indianapolis, America/Caracas, America/Asuncion, America/Halifax, America/Cuiaba, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Buenos_Aires, America/Cayenne, America/Godthab, America/Montevideo, Etc/GMT+2, Etc/GMT+2, Atlantic/Azores, Atlantic/Cape_Verde, Africa/Casablanca, Etc/GMT, Europe/London, Atlantic/Reykjavik, Europe/Berlin, Europe/Budapest, Europe/Paris, Europe/Warsaw, Africa/Lagos, Africa/Windhoek, Asia/Amman, Europe/Istanbul, Asia/Beirut, Africa/Cairo, Asia/Damascus, Africa/Johannesburg, Europe/Kiev, Asia/Jerusalem, Europe/Minsk, Asia/Baghdad, Asia/Riyadh, Africa/Nairobi, Asia/Tehran, Europe/Moscow, Asia/Dubai, Asia/Baku, Indian/Mauritius, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Karachi, Asia/Tashkent, Asia/Calcutta, Asia/Colombo, Asia/Katmandu, Asia/Yekaterinburg, Asia/Almaty, Asia/Dhaka, Asia/Rangoon, Asia/Novosibirsk, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Singapore, Australia/Perth, Asia/Taipei, Asia/Ulaanbaatar, Asia/Irkutsk, Asia/Tokyo, Asia/Seoul, Australia/Adelaide, Australia/Darwin, Asia/Yakutsk, Australia/Brisbane, Australia/Sydney, Pacific/Port_Moresby, Australia/Hobart, Asia/Vladivostok, Pacific/Guadalcanal, Asia/Magadan, Pacific/Auckland, Etc/GMT-12, Pacific/Fiji, Asia/Kamchatka, Pacific/Tongatapu, Pacific/Apia
  • roles = Roles del usuario (Lista de Strings, obligatorio)
    • Valores permitidos:
      • SYSTEM_TRAINER
      • SYSTEM_ADMINISTRATOR
      • SYSTEM_ADMINISTRATOR_TRAINING
      • SYSTEM_TEAM_MANAGER
      • SYSTEM_STUDENT
      • SYSTEM_SUPPORT
    status = Estado (String
      • SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
  • status = Estado (Stringobligatorio)
    • Valores permitidos:
      • ACTIVE
      • INACTIVE
  • email = Correo electrónico del usuario (String, obligatorio)
  • officePhoneNumber = Teléfono de oficina (String, opcional)
  • mobilePhoneNumber = Teléfono móvil (String, opcional)
  • address = Dirección (String, opcional)
  • jobTitle = Puesto (String, opcional)
  • location = Departamento (String, opcional)
  • organization = Compañía (String, opcional)
  • aboutMe = Sobre mí (String, opcional)
  • interests = Intereses (String, opcional)
  • extendedField[nombre del campo extendido] (lista) = Nombre y valor de los campos extensibles (clave-valor de Strings, opcional*)
    * solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto
    • Valores permitidos:
      • Si el campo extendido es de tipo texto --> cualquier texto
      • Si el campo extendido es de tipo entero --> sólo números
      • Si el campo extendido es de tipo si/no --> valores "true" o "false"
      • Si el campo extendido es de tipo lista de valores --> un valor de la lista
  • teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)

...

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Nombre de usuario no válido --> USR001 / 400 (Bad Request)
  • Contraseña no cumple el patrón establecido (debe tener al menos cuatro caracteres y no contener espacios) --> Error USR002 / 400 (Bad Request)
  • Identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
  • Identificador de la zona horaria no existe --> No da error, se estable la zona horaria por defecto
  • Roles incorrectos --> Error USR004 / 400 (Bad Request) 
    • Algún rol no existe
    • O son correctos pero se han asignado los roles de administrador y administrador de formación a la vez
    • O son correctos pero se ha han asignado los roles de auditor y administrador de la formación a la vez
    • O son correctos pero seha asignado el rol de soporte, pero no el de administrador
  • Estado del usuario no válido --> Error USR005 / 400 (Bad Request)
  • Email no válido --> Error USR006 / 400 (Bad Request)
  • Nombre de usuario duplicado --> Error USR009 / 400 (Bad Request)
  • Id externo duplicado --> Error ERR006 / 400 (Bad Request)
  • Error inesperado asignando los roles --> Error USR010 / 400 (Bad Request)
  • El nombre de un campo extensible no existe --> Error DYN001 / 400 (Bad Request)
  • El valor de un campo extensible tiene tipo incorrecto --> Error DYN002 / 400 (Bad Request)
  • Falta algún campo extensible obligatorio --> Error DYN003 / 400 (Bad Request)
    • No se ha incluido el campo obligatorio en la petición y no tiene asignado el valor por defecto
    • Se ha incluido el campo en la petición pero se le ha asignado un valor vacío
  • Si el nombre de usuario del jefe de equipo no existe o el usuario encontrado no tiene ese perfil --> Error USR018 / 400 (Bad Request)

...

  • external_id = Id externo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni / 
  • username = Nombre de usuario (String, obligatorio)
  • firstName = Nombre (String, obligatorio)
  • lastName = Apellidos (String, obligatorio)
  • preferredLanguage = Idioma predeterminado (String, obligatorio)
    • Valores permitidos = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
  • personTimezoneId = Zona horaria (String, obligatorio)
    • Valor por defecto :
      • El correspondiente al campo "PlatformTimezone" en la tabla "configurationSettings", el valor actual es "Europe/Paris"
      • Si este no existe, se usa el valor definido en la variable de configuración "configuration.settings.default.timezone", el valor actual es "Etc/GMT"
    • Valores permitidos: 
      • Etc/GMT+12, Etc/GMT+11, Pacific/Honolulu, America/Anchorage, America/Tijuana, America/Los_Angeles, America/Phoenix, America/Chihuahua, America/Denver, America/Guatemala, America/Chicago, America/Mexico_City, America/Regina, America/Bogota, America/New_York, America/Indianapolis, America/Caracas, America/Asuncion, America/Halifax, America/Cuiaba, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Buenos_Aires, America/Cayenne, America/Godthab, America/Montevideo, Etc/GMT+2, Etc/GMT+2, Atlantic/Azores, Atlantic/Cape_Verde, Africa/Casablanca, Etc/GMT, Europe/London, Atlantic/Reykjavik, Europe/Berlin, Europe/Budapest, Europe/Paris, Europe/Warsaw, Africa/Lagos, Africa/Windhoek, Asia/Amman, Europe/Istanbul, Asia/Beirut, Africa/Cairo, Asia/Damascus, Africa/Johannesburg, Europe/Kiev, Asia/Jerusalem, Europe/Minsk, Asia/Baghdad, Asia/Riyadh, Africa/Nairobi, Asia/Tehran, Europe/Moscow, Asia/Dubai, Asia/Baku, Indian/Mauritius, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Karachi, Asia/Tashkent, Asia/Calcutta, Asia/Colombo, Asia/Katmandu, Asia/Yekaterinburg, Asia/Almaty, Asia/Dhaka, Asia/Rangoon, Asia/Novosibirsk, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Singapore, Australia/Perth, Asia/Taipei, Asia/Ulaanbaatar, Asia/Irkutsk, Asia/Tokyo, Asia/Seoul, Australia/Adelaide, Australia/Darwin, Asia/Yakutsk, Australia/Brisbane, Australia/Sydney, Pacific/Port_Moresby, Australia/Hobart, Asia/Vladivostok, Pacific/Guadalcanal, Asia/Magadan, Pacific/Auckland, Etc/GMT-12, Pacific/Fiji, Asia/Kamchatka, Pacific/Tongatapu, Pacific/Apia
  • roles = Roles del usuario (Lista de Strings, obligatorio)
    • Valores permitidos:
      • SYSTEM_TRAINER
      • SYSTEM_ADMINISTRATOR
      • SYSTEM_ADMINISTRATOR_TRAINING
      • SYSTEM_TEAM_MANAGER
      • SYSTEM_STUDENT
      • SYSTEM_SUPPORT
      • SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
  • status = Estado (String, obligatorio)
      • Valores permitidos:
        • ACTIVE
        • INACTIVE
  • email = Correo electrónico del usuario (String, obligatorio)
  • officePhoneNumber = Teléfono de oficina (String, opcional)
  • mobilePhoneNumber = Teléfono móvil (String, opcional)
  • address = Dirección (String, opcional)
  • jobTitle = Puesto (String, opcional)
  • location = Departamento (String, opcional)
  • organization = Compañía (String, opcional)
  • aboutMe = Sobre mí (String, opcional)
  • interests = Intereses (String, opcional)
  • extendedField[nombre del campo extendido] (lista) = Nombre y valor de los campos extensibles (clave-valor de Strings, opcional*)
    * Solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto
    • Valores permitidos:
      • Si el campo extendido es de tipo texto --> cualquier texto
      • Si el campo extendido es de tipo entero --> sólo números
      • Si el campo extendido es de tipo si/no --> valores "true" o "false"
      • Si el campo extendido es de tipo lista de valores --> un valor de la lista
  • teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)

...

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Nombre de usuario no válido --> USR001 / 400 (Bad Request)
  • Identificador del idioma no existe --> Error USR003 / 400 (Bad Request)
  • Identificador de la zona horaria no existe --> No da error, se estable la zona horaria por defecto
  • Los roles son incorrectos --> Error USR004 / 400 (Bad Request) 
    • Algún rol no existe
    • O son correctos pero se han asignado los roles de administrador y administrador de formación a la vez
    • O son correctos pero se ha han asignado los roles de auditor y administrador de la formación a la vez
    • O son correctos pero seasignado el rol de soporte, pero no el de administrador
  • Estado del usuario no válido --> Error USR005 / 400 (Bad Request)
  • Email no es válido --> Error USR006 / 400 (Bad Request)
  • El nombre de usuario está duplicado --> Error USR009 / 400 (Bad Request)
  • Id externo duplicado --> Error ERR006 / 400 (Bad Request)
  • Error inesperado asignando los roles --> Error USR010 / 400 (Bad Request)
  • El nombre de un campo extensible no existe --> Error DYN001 / 400 (Bad Request)
  • El valor de un campo extensible tieneun  tipo incorrecto --> Error DYN002 / 400 (Bad Request)
  • Falta algún campo extensible obligatorio --> Error DYN003 / 400 (Bad Request)
    • No se ha incluido el campo obligatorio en la petición y no tiene asignado el valor por defecto
    • Se ha incluido el campo en la petición pero se le ha asignado un valor vacío
  • No existe el usuario --> Error 404 (Not Found)
  • Si el nombre de usuario del jefe de equipo no existe o el usuario encontrado no tiene ese perfil --> Error USR018 / 400 (Bad Request)
  • Todo OK --> 200 (OK)

...

  • external_id = Id externo ((warning) si no lo tenía hay que incluirlo en una operación add)
  • username = Nombre de usuario (String, opcional)
  • firstName = Nombre  (String, opcional)
  • lastName = Apellidos (String, opcional)
  • preferredLanguage = Idioma predeterminado (String, opcional)
    • Valores permitidos = los idiomas de la plataforma:
      • en = Inglés, es = Español, pt = Portugués, it = Italiano, gl = Gallego,...
  • personTimezoneId = Zona horaria (String, opcional)
    • Valor por defecto :
      • El correspondiente al campo "PlatformTimezone" en la tabla "configurationSettings", el valor actual es "Europe/Paris"
      • Si este no existe, se usa el valor definido en la variable de configuración "configuration.settings.default.timezone", el valor actual es "Etc/GMT"
    • Valores permitidos: 
      • Etc/GMT+12, Etc/GMT+11, Pacific/Honolulu, America/Anchorage, America/Tijuana, America/Los_Angeles, America/Phoenix, America/Chihuahua, America/Denver, America/Guatemala, America/Chicago, America/Mexico_City, America/Regina, America/Bogota, America/New_York, America/Indianapolis, America/Caracas, America/Asuncion, America/Halifax, America/Cuiaba, America/La_Paz, America/Santiago, America/St_Johns, America/Sao_Paulo, America/Buenos_Aires, America/Cayenne, America/Godthab, America/Montevideo, Etc/GMT+2, Etc/GMT+2, Atlantic/Azores, Atlantic/Cape_Verde, Africa/Casablanca, Etc/GMT, Europe/London, Atlantic/Reykjavik, Europe/Berlin, Europe/Budapest, Europe/Paris, Europe/Warsaw, Africa/Lagos, Africa/Windhoek, Asia/Amman, Europe/Istanbul, Asia/Beirut, Africa/Cairo, Asia/Damascus, Africa/Johannesburg, Europe/Kiev, Asia/Jerusalem, Europe/Minsk, Asia/Baghdad, Asia/Riyadh, Africa/Nairobi, Asia/Tehran, Europe/Moscow, Asia/Dubai, Asia/Baku, Indian/Mauritius, Asia/Tbilisi, Asia/Yerevan, Asia/Kabul, Asia/Karachi, Asia/Tashkent, Asia/Calcutta, Asia/Colombo, Asia/Katmandu, Asia/Yekaterinburg, Asia/Almaty, Asia/Dhaka, Asia/Rangoon, Asia/Novosibirsk, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Shanghai, Asia/Singapore, Australia/Perth, Asia/Taipei, Asia/Ulaanbaatar, Asia/Irkutsk, Asia/Tokyo, Asia/Seoul, Australia/Adelaide, Australia/Darwin, Asia/Yakutsk, Australia/Brisbane, Australia/Sydney, Pacific/Port_Moresby, Australia/Hobart, Asia/Vladivostok, Pacific/Guadalcanal, Asia/Magadan, Pacific/Auckland, Etc/GMT-12, Pacific/Fiji, Asia/Kamchatka, Pacific/Tongatapu, Pacific/Apia
  • roles = Roles del usuario (Lista de Strings, opcional)
    • Valores permitidos:
      • SYSTEM_TRAINER
      • SYSTEM_ADMINISTRATOR
      • SYSTEM_ADMINISTRATOR_TRAINING
      • SYSTEM_TEAM_MANAGER
      • SYSTEM_STUDENT
      • SYSTEM_SUPPORT
      • SYSTEM_AUDITOR (prevalece sobre el rol SYSTEM_ADMINISTRATOR)
  • status = Estado (String, opcional)
    • Valores permitidos:
      • ACTIVE
      • INACTIVE
  • email = Correo electrónico del usuario  (String, opcional)
  • officePhoneNumber = Teléfono de oficina (String, opcional)
  • mobilePhoneNumber = Teléfono móvil (String, opcional)
  • address = Dirección (String, opcional)
  • jobTitle = Puesto (String, opcional)
  • location = Departamento (String, opcional)
  • organization = Compañía (String, opcional)
  • aboutMe = Sobre mí (String, opcional)
  • interests = Intereses (String, opcional)
  • extendedField[nombre del campo extendido] (lista) = Nombre y valor de los campos extensibles (clave-valor de Strings, opcional*)
    * Solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto
    • Valores permitidos:
      • Si el campo extendido es de tipo texto --> cualquier texto
      • Si el campo extendido es de tipo entero --> sólo números
      • Si el campo extendido es de tipo si/no --> valores "true" o "false"
      • Si el campo extendido es de tipo lista de valores --> un valor de la lista
  • teamManagerUsername = Nombre de usuario de un jefe de equipo (String, opcional)

...

  • No existe el usuario --> Error 404 (Not Found)
  • Error inesperado --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK) + JSON


Obtener

...

los roles del usuario

Método: GET

URL: 

  • Obtener resumen de notificaciones de los roles del usuario: 
    • /admin/rest/administration/api/users/id/{id}/notifications/summaryroles
    • /admin/rest/administration/api/users/externalid/{external_id}/notifications/summaryroles
    • /admin/rest/administration/api/users/username/{username}/notifications/summaryroles

Ejemplo:

Campos devueltos en el Json

  • total = Número total de notificaciones del usuario
  • unread = Número de notificaciones no leídas por el usuario

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Obtener los roles del usuario

Método: GET

URL: 

Campos devueltos en el Json

...

Ejemplo:

  • https://demo.central-lms.com/admin/rest/administration/api/users/id/1/roles
  • https://demo.central-lms.comSYSTEM_SUPPORT = True/False. Indica si el usuario tiene rol soporte.
  • SYSTEM_ADMINISTRATOR = True/False. Indica si el usuario tiene rol administrador.
  • SYSTEM_TRAINER = True/False. Indica si el usuario tiene rol formador o jefe de equipo.
  • SYSTEM_STUDENT = True/False.Indica si el usuario tiene rol alumno.
  • SYSTEM_ADMINISTRATOR_TRAINING = True/False. Indica si el usuario tiene rol administrador de la formación.
  • SYSTEM_AUDITOR = True/False. Indica si el usuario tiene rol auditor.

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
  • Error inesperado --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK) + JSON

Establecer los roles del usuario

Método: PUT

URL:

  • Establecer los roles:
    • /admin/rest/administration/api/users/
    externalid
    • id/
    extuser1
    • {id}/roles
    https:/
    • /
    demo.central-lms.com/
    • admin/rest/administration/api/users/
    username/admin/roles

Campos devueltos en el Json

  • SYSTEM_SUPPORT = True/False. Indica si el usuario tiene rol soporte.
  • SYSTEM_ADMINISTRATOR = True/False. Indica si el usuario tiene rol administrador.
  • SYSTEM_TRAINER = True/False. Indica si el usuario tiene rol formador o jefe de equipo.
  • SYSTEM_STUDENT = True/False.Indica si el usuario tiene rol alumno.
  • SYSTEM_ADMINISTRATOR_TRAINING = True/False. Indica si el usuario tiene rol administrador de la formación.

Validaciones

  • No existe el usuario --> Error 404 (Not Found)
  • No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
  • Error inesperado --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK) + JSON

Establecer los roles del usuario

Método: PUT

URL:

  • Establecer los roles:
    • /admin/rest/administration/api/users/id/{id}/roles
    • /admin/rest/administration/api/users/externalid/{external_id}/roles
    • /admin/rest/administration/api/users/username/{username}/roles

Ejemplo:

Cabeceras

  • X-origin: Opcional, valores permitidos:
    • lCloud: peticiones con origen Learning Cloud
    • lCentral: peticiones con origen Learning Central

Parametros

Roles:

  • SYSTEM_SUPPORT = Booleano que indica si el usuario tiene el rol soporte
    • externalid/{external_id}/roles
    • /admin/rest/administration/api/users/username/{username}/roles

Ejemplo:

Cabeceras

  • X-origin: Opcional, valores permitidos:
    • lCloud: peticiones con origen Learning Cloud
    • lCentral: peticiones con origen Learning Central

Parametros

Roles:

  • SYSTEM_SUPPORT = Booleano que indica si el usuario tiene el rol soporte. (True/False,  obligatorio )
  • SYSTEM_ADMINISTRATOR = Booleano que indica si el usuario tiene el rol administrador. (True/False,  obligatorio )
  • SYSTEM_TRAINER = Booleano que indica si el usuario tiene el rol formador (Si el usuario tiene activado el rol jefe de equipo, este flag no activará el rol formador. Si se desactiva este rol, ambos serán eliminados (formador+jefe de equipo). (True/False,  obligatorio )
  • SYSTEM_ADMINISTRATOR STUDENT = Booleano que indica si el usuario tiene el rol administradoralumno. (True/False,  obligatorio )
  • SYSTEM_ADMINISTRATOR_TRAINER TRAINING = Booleano Booleano que indica si el usuario tiene el rol formador (Si administrador de la formación. (True/False,  obligatorio )
  • SYSTEM_AUDITOR = Booleano que indica si el usuario tiene activado el rol jefe de equipo, este flag no activará el rol formador. Si se desactiva este rol, ambos serán eliminados (formador+jefe de equipo). (True/False,  obligatorio )
  • SYSTEM_STUDENT = Booleano que indica si el usuario tiene el rol alumno. (True/False,  obligatorio )
  • SYSTEM_ADMINISTRATOR_TRAINING =Booleano que indica si el usuario tiene el rol administrador de la formación. (True/False,  obligatorio )

Validations

  • No existe el usuario --> Error 404 (Not Found)
  • No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
  • No se le pasó el parámetro obligatorio (json con todos los roles) --> Error 400
  • Roles incompatibles (soporte sin rol admin || admin y training admin simultáneos) --> Error 400 => Código de error USR004
  • No todos los portales y/o el identificador de usuario especificados como parámetro --> Error 400 (Bad Request)
  • Error inesperado  --> Error 500 (Internal Server Error)auditor. (True/False,  obligatorio )

Validations

  • No existe el usuario --> Error 404 (Not Found)
  • No se le pasó el parámetro obligatorio /id/externalid/username --> Error 400
  • No se le pasó el parámetro obligatorio (json con todos los roles) --> Error 400
  • Roles incompatibles (soporte sin rol admin || admin y training admin simultáneos) --> Error 400 => Código de error USR004
  • No todos los portales y/o el identificador de usuario especificados como parámetro --> Error 400 (Bad Request)
  • Error inesperado  --> Error 500 (Internal Server Error)
  • Todo OK --> 200 (OK).

Obtener todos los cursos de un usuario

Método: GET

URL:

  • Obtener todos los cursos sin paginación: 
    • /admin/rest/administration/api/users/id/{id}/courses
    • /admin/rest/administration/api/users/externalid/{external_id}/courses
    • /admin/rest/administration/api/users/username/{username}/courses
  • Obtener todos los cursos con paginación:
    • /admin/rest/administration/api/users/id/{id}/courses?startIndex={startIndex}&count={count}
    • /admin/rest/administration/api/users/externalid/{external_id}/courses?startIndex={startIndex}&count={count}
    • /admin/rest/administration/api/users/username/{username}/courses?startIndex={startIndex}&count={count}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/users/id/1/courses?startIndex=0&count=100

Parámetros

  • startindex = índice inicial para la paginación (Integer, opcional)
  • count = total de elementos a recuperar para la paginación (Integer, opcional)
  • status = Filtrar por el estado del curso (Valores válidos: DRAFT, PUBLISHED, CLOSED) opcional.
  • startDateFrom = Filtrar los cursos que empiecen después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • startDateTo = Filtrar los cursos que empiecen antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • endDateFrom = Filtrar los cursos que terminen después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • endDateTo = Filtrar los cursos que terminen antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • creationDateFrom = Filtrar los cursos creados después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • creationDateTo = Filtrar los cursos creados antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • modificationDateFrom = Filtrar los cursos modificados después de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.
  • modificationDateTo = Filtrar los cursos creados antes de la fecha proporcionada. (String, opcional). Si la cabecera NLC-datesFormat está con el valor milliseconds el valor será en milisegundos, en otro caso será en el formato: yyyy-MM-dd HH:mm:ss.

Cabeceras

  • NLC-datesFormat. Opcional, valores permitidos:
    • milliseconds. Las fechas se devolverán en milisegundos
    • en otro caso se seguirá el formato de texto: "yyyy-MM-dd HH:mm:ss"

Campos devueltos en el Json

Listado de cursos, cada curso consta de los siguientes campos:

  • parent = Campos concretos del curso padre. En caso de que el curso esté configurado para tener convocatorias, son los campos que comparten todas las convocatorias. Contiene los siguientes atributos:
    • parentId = Identificador del curso padre
    • parentExternal_id = Id externo del curso padre
    • name = Nombre del curso padre
    • description = Descripción del curso
    • comments = Comentarios del curso
    • objectives = Objetivos del curso
    • issueCertificate = Expedir certificado
      • NO --> Sin certificado
      • PASSED --> Certificado disponible para los estudiantes tan pronto aprueben el curso
      • FINISHED --> Certificado disponible para los estudiantes solamente después de la finalización del curso
    • sessionOrganization = Organización de acciones formativas
      • MANUAL --> Manual
      • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
    • evaluationType = Sistema de evaluación seleccionado
      • Valores permitidos:
        • PASSED_MANDATORY_ACTIVITIES
        • MIN_SCORE
    • credits = Número de créditos
    • optativeCredits = Número de créditos optativos
    • percentageToPass = porcentaje mínimo para superar el curso
    • hasForum = Valor true/false. Indica si tiene foro.
    • hasMessage = Valor true/fallse. Indica si tiene mensajes.  
    • clonedFromId = Identificador de curso que se clona 
    • hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • hasStartReminder = Activar recordatorios de la fecha de inicio del curso
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • hasEditions = El curso tiene habilitadas las convocatorias
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • recogniseEditions = Validación automática entre convocatorias
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
  • id = Identificador
  • external_id = Id externo
  • editionName = Nombre de la convocatoria
  • startDateMode = Tipo de fecha de inicio
    • PUBLICATION_DATE --> La fecha de inicio será la fecha de publicación del curso
    • MANUAL --> La fecha de inicio se establecerá de forma manual
  • startDate = Fecha estimada de inicio (UTC)
  • endDateMode = Tipo fecha de fin 
    • NONE --> Ninguna, el administrador finalizará el curso manualmente
    • MANUAL --> La fecha de fin se establecerá de forma manual
    • FIRST_ACCESS -> Fecha fin según el primer acceso del alumno
  • studentAvailableDays = Número de días tras el primero acceso que tiene el alumno disponible el curso (Integer, obligatorio si el modo es FIRST_ACCESS).
  • endDate     = Fecha estimada de fin (UTC)
  • status = Estado del curso
  • moduleType = Tipo de módulo
  • enrolmentPolicy = Política de inscripción
    • AUTO_ENROLLMENT --> Auto inscripción
    • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
    • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción
    • INHERIT --> Heredada del curso
    • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentStartDate = Fecha de apertura de inscripciones (UTC)
  • requestEnrolmentEndDate = Fecha de cierre de inscripciones (UTC)
  • clonedFromId = Identificador de curso que se clona (Long) 
  • capacity = Aforo máximo de la edición (Integer)
  • avgRating = Valoración media (Double)
  • rateable = Curso valorable por los alumnos o no valorable
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE 
  • categories = Lista de Categorías del curso
    • id = Identificador de la categoría
    • external_id = Identificador externo
    • name = Nombre de la categoría
    • code = Código de la categoría
    • description = Descripción de la categoría
  • extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
    • extendedFieldName = Nombre del campo extendido
    • extendedFieldValue = Valor del campo extendido
  • collection = Nombre de la colección asociada al curso. Vacio si no está asociado a ninguna colección.

Validaciones

  • Índices erróneos --> Error 416 (Requested Range Not Satisfiable) Usando paginación, ambos índices deben tener un valor
  • No hay cursos --> Error 204 (No Content)
  • Filtro por estado incorrecto –> Error 400 (Bad request).
  • Filtro de fechas con formato incorrecto --> Error 400 (Bad request).
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Filtro por usuario incorrecto --> Error 400 (Bad request)

Todo OK

  • Si no hay paginación --> 200 (OK) + JSON
  • Si hay paginación --> 206 (Partial Content) + JSON


Obtener todos los cursos de catálogo de un usuario

Método: GET

URL:

  • Obtener todos los cursos de catálogo: 
    • /admin/rest/administration/api/users/id/{id}/catalog
    • /admin/rest/administration/api/users/externalid/{external_id}/catalog
    • /admin/rest/administration/api/users/username/{username}/catalog

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/users/id/1/catalog

Campos devueltos en el Json

Listado de cursos, cada curso consta de los siguientes campos:

  • parent = Campos concretos del curso padre. En caso de que el curso esté configurado para tener convocatorias, son los campos que comparten todas las convocatorias. Contiene los siguientes atributos:
    • parentId = Identificador del curso padre
    • parentExternal_id = Id externo del curso padre
    • name = Nombre del curso padre
    • description = Descripción del curso
    • comments = Comentarios del curso
    • objectives = Objetivos del curso
    • issueCertificate = Expedir certificado
      • NO --> Sin certificado
      • PASSED --> Certificado disponible para los estudiantes tan pronto aprueben el curso
      • FINISHED --> Certificado disponible para los estudiantes solamente después de la finalización del curso
    • sessionOrganization = Organización de acciones formativas
      • MANUAL --> Manual
      • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
    • evaluationType = Sistema de evaluación seleccionado
      • Valores permitidos:
        • PASSED_MANDATORY_ACTIVITIES
        • MIN_SCORE
    • credits = Número de créditos
    • optativeCredits = Número de créditos optativos
    • percentageToPass = porcentaje mínimo para superar el curso
    • hasForum = Valor true/false. Indica si tiene foro.
    • hasMessage = Valor true/fallse. Indica si tiene mensajes.  
    • clonedFromId = Identificador de curso que se clona 
    • hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • hasStartReminder = Activar recordatorios de la fecha de inicio del curso
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • hasEditions = El curso tiene habilitadas las convocatorias
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
    • recogniseEditions = Validación automática entre convocatorias
      • Valores permitidos: TRUE / FALSE
      • Valor por defecto: FALSE
  • id = Identificador
  • external_id = Id externo
  • editionName = Nombre de la convocatoria
  • startDateMode = Tipo de fecha de inicio
    • PUBLICATION_DATE --> La fecha de inicio será la fecha de publicación del curso
    • MANUAL --> La fecha de inicio se establecerá de forma manual
  • startDate = Fecha estimada de inicio (UTC)
  • endDateMode = Tipo fecha de fin 
    • NONE --> Ninguna, el administrador finalizará el curso manualmente
    • MANUAL --> La fecha de fin se establecerá de forma manual
    • FIRST_ACCESS -> Fecha fin según el primer acceso del alumno
  • studentAvailableDays = Número de días tras el primero acceso que tiene el alumno disponible el curso (Integer, obligatorio si el modo es FIRST_ACCESS).
  • endDate     = Fecha estimada de fin (UTC)
  • status = Estado del curso
  • moduleType = Tipo de módulo
  • enrolmentPolicy = Política de inscripción
    • AUTO_ENROLLMENT --> Auto inscripción
    • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
    • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción
    • INHERIT --> Heredada del curso
    • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentStartDate = Fecha de apertura de inscripciones (UTC)
  • requestEnrolmentEndDate = Fecha de cierre de inscripciones (UTC)
  • clonedFromId = Identificador de curso que se clona (Long) 
  • capacity = Aforo máximo de la edición (Integer)
  • avgRating = Valoración media (Double)
  • rateable = Curso valorable por los alumnos o no valorable
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE 
  • categories = Lista de Categorías del curso
    • id = Identificador de la categoría
    • external_id = Identificador externo
    • name = Nombre de la categoría
    • code = Código de la categoría
    • description = Descripción de la categoría
  • extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
    • extendedFieldName = Nombre del campo extendido
    • extendedFieldValue = Valor del campo extendido
  • collection = Nombre de la colección asociada al curso. Vacio si no está asociado a ninguna colección.

Validaciones

  • No hay cursos --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Filtro por usuario incorrecto --> Error 400 (Bad request)

Todo OK

  • 200 (OK) + JSON

Dar acceso a usuarios

Método: POST

URL:

  • Dar acceso por id:
    • /admin/rest/administration/api/sessions/id/{id}/students
  • Dar acceso por external id:
    • /admin/rest/administration/api/sessions/externalid/{external_id}/students

Ejemplo:

https://clowd-central.learningcloud.me/admin/rest/administration/api/collections/id/2004/students


BODY - application/json


{
  "ids":[1,2,3],
  "externalIds":["ext1", "ext2", "ext4"]
}


 Parámetros

Objeto json con dos listados:

  • ids = Listado de identificadores de alumnos.
  • externalIds = Listado de identificadores externos de alumnos.

Validaciones

  • No existe una colección con ese id/externalid --> Error 404 (Not Found) código de error ERR004/ERR005 dependiendo de si es id o externalid.
  • La colección tiene política de acceso libre --> Error CLL005/ 400 (Bad Request)
  • Errores que provocan un estado 200, se devuelve un listado de json con códigos de errores y se inscriben el resto de alumnos que no dieron error (si no queda ninguno también devuelve un 200).
    • Id de alumno no encontrado --> Error CLL006/ 200
    • Id externo de alumno no encontrado --> Error CLL007/ 200
    • El alumno ya tiene acceso a la colección --> Error CLL004/ 200
  • Error inesperado –> Error 500
  • Todo OK --> 200 (OK)

Excluir usuarios de colección

Método: DELETE

URL:

  • Excluir usuarios por id:
    • /admin/rest/administration/api/sessions/id/{id}/removeStudents
  • Excluir usuarios por external id:
    • /admin/rest/administration/api/sessions/externalid/{external_id}/removeStudents

Ejemplo:

https://clowd-central.learningcloud.me/admin/rest/administration/api/collections/id/2004/removeStudents


BODY - application/json


{
  "ids":[1,2,3],
  "externalIds":["ext1", "ext2", "ext4"]
}


 Parámetros

Objeto json con dos listados:

  • ids = Listado de identificadores de alumnos.
  • externalIds = Listado de identificadores externos de alumnos.

Validaciones

  • No existe una colección con ese id/externalid --> Error 404 (Not Found) código de error ERR004/ERR005 dependiendo de si es id o externalid.
  • Errores que provocan un estado 200, se devuelve un listado de json con códigos de errores y se excluyen el resto de alumnos que no dieron error (si no queda ninguno también devuelve un 200).
    • Id de alumno no encontrado --> Error CLL006/ 200
    • Id externo de alumno no encontrado --> Error CLL007/ 200
  • Error inesperado –> Error 500
  • Todo OK --> 200 (OK).