API Cursos

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

Manual de autenticación y versionado: manual (autenticación y versionado)

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


Crear curso (v1)


Esta versión lleva la entrada con Content-Type: application/x-www-form-urlencoded, se recomienda el uso de la nueva versión, que consume json.

Método: POST

URL: /admin/rest/administration/api/courses

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses

BODY - application/x-www-form-urlencoded
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&sessionOrganization=AUTOMATIC&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura 

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
  • endDate = Fecha de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • sessionOrganization = Organización de acciones formativas (String, obligatorio) 
    • Valores permitidos: 
      • MANUAL --> Manual
      • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • idCategory (lista) = Listado de ids para añadir categorías (Long, opcional)
  • externalidCategory (lista) = Listado de ids externos para añadir categorías (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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor del modo de la organización de acciones formativas no es válido --> Error CRS006 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Crear curso (v2)


Se consumirán dos tipos de recursos application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: POST

URL: /admin/rest/administration/api/courses

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses

BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&evaluationType=MIN_SCORE&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&sessionOrganization=AUTOMATIC&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura


BODY - application/json
{
  "external_id": "excourse1",
  "name": "Curso de diseño gráfico",
  "description": "Conocimiento básicos sobre diseño gráfico y web",
  "objectives": "Aprender a hacer sencillas páginas web y worpress",
  "comments": "Opcional",
  "evaluationType": "MIN_SCORE",
  "percentageToPass": 50,
  "issueCertificate": "PASSED",
  "startDateMode": "MANUAL",
  "startDate": 1420844400000,
  "endDateMode": "MANUAL",
  "endDate": 1431208800000,
  "sessionOrganization": "AUTOMATIC",
  "enrolmentPolicy": "REQUEST_ENROLLMENT",
  "requestEnrolmentStartDate": 1420844400000,
  "requestEnrolmentEndDateMode": "MANUAL",
  "requestEnrolmentEndDate": 1431208800000,
  "hasForum": "true",
  "hasMessage": "false",
  "categories": [
    {"id": 2 }, {"id": 3}
  ],
  "extendedFields": [
    {"extendedFieldName": " Deportes ", "extendedFieldValue": " true "},
    {"extendedFieldName": " Actividades extraescolares ", "extendedFieldValue": " Pintura "}
  ]
}

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • evaluationType = Sistema de evaluación seleccionado (String, obligatorio)
    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100 (Si evaluation type es PASSED_MANDATORY_ACTIVITIES)
      • Número entre 1 y 100 (Si evaluation type es MIN_SCORE)
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
  • endDate = Fecha de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • sessionOrganization = Organización de acciones formativas (String, obligatorio) 
    • Valores permitidos: 
      • MANUAL --> Manual
      • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • idCategory (lista) (versión urlencoded)= Listado de ids para añadir categorías (Long, opcional)
  • categories (versión json)= Listado de categorías a añadir (pueden ir con id o external_id) (Lista json, opcional) 
    • id Id de la categoría que se quiere añadir (Long, opcional)
    • external_id Id externo de la categoría que se quiere añadir (String, opcional)
  • extendedFields[nombre del campo extendido] (lista) (versión urlencoded) = 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 --> el identificador correspondiente al valor en la lista
  • extendedFields (versión json) = Lista de campos extendidos que se quieren añadir. N ombre 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
    • Los objetos de la lista tendrán dos atributos:
      • extendedFieldName: Nombre de la propiedad extendida 
      • extendedFieldValue: Valor de la propiedad extendida 
        • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor del modo de la organización de acciones formativas no es válido --> Error CRS006 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no es válido --> Error CRS037 / 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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado


Crear curso (v3)


Se consumirán dos tipos de recursos application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: POST

URL: /admin/rest/administration/api/courses

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses

BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&evaluationType=MIN_SCORE&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&sessionOrganization=AUTOMATIC&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&rateable=ONLY_ENROLMENTS&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura


BODY - application/json
{
  "external_id": "excourse1",
  "name": "Curso de diseño gráfico",
  "description": "Conocimiento básicos sobre diseño gráfico y web",
  "objectives": "Aprender a hacer sencillas páginas web y worpress",
  "comments": "Opcional",
  "evaluationType": "MIN_SCORE",
  "percentageToPass": 50,
  "issueCertificate": "PASSED",
  "startDateMode": "MANUAL",
  "startDate": 1420844400000,
  "endDateMode": "MANUAL",
  "endDate": 1431208800000,
  "sessionOrganization": "AUTOMATIC",
  "enrolmentPolicy": "REQUEST_ENROLLMENT",
  "requestEnrolmentStartDate": 1420844400000,
  "requestEnrolmentEndDateMode": "MANUAL",
  "requestEnrolmentEndDate": 1431208800000,
  "hasForum": "true",
  "hasMessage": "false",
  "rateable": "ONLY_ENROLMENTS",
  "hasEditions": "false",
  "recogniseEditions": "false",
  "categories": [
    {"id": 2 }, {"id": 3}
  ],
  "extendedFields": [
    {"extendedFieldName": " Deportes ", "extendedFieldValue": " true "},
    {"extendedFieldName": " Actividades extraescolares ", "extendedFieldValue": " Pintura "}
  ]
}

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • evaluationType = Sistema de evaluación seleccionado (String, obligatorio)
    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100 (Si evaluation type es PASSED_MANDATORY_ACTIVITIES)
      • Número entre 1 y 100 (Si evaluation type es MIN_SCORE)
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • 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 de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • sessionOrganization = Organización de acciones formativas (String, obligatorio) 
    • Valores permitidos: 
      • MANUAL --> Manual
      • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • rateable = Curso valorable por los alumnos o no valorable (String, opcional) 
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE
  • hasEditions = Curso con convocatorias (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasStartReminder = Convalidación entre convocatorias (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • idCategory (lista) (versión urlencoded)= Listado de ids para añadir categorías (Long, opcional)
  • categories (versión json)= Listado de categorías a añadir (pueden ir con id o external_id) (Lista json, opcional) 
    • id Id de la categoría que se quiere añadir (Long, opcional)
    • external_id Id externo de la categoría que se quiere añadir (String, opcional)
  • extendedFields[nombre del campo extendido] (lista) (versión urlencoded) = 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 --> el identificador correspondiente al valor en la lista
  • extendedFields (versión json) = Lista de campos extendidos que se quieren añadir. N ombre 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
    • Los objetos de la lista tendrán dos atributos:
      • extendedFieldName: Nombre de la propiedad extendida 
      • extendedFieldValue: Valor de la propiedad extendida 
        • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor del modo de la organización de acciones formativas no es válido --> Error CRS006 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no es válido --> Error CRS037 / 400 (Bad Request)
  • El valor de los días de disponibilidad del alumno no son válidos -> Error CRS52 (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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • El valor del campo rateable es incorrecto –> Error CRS041 / 400 (Bad Request)
  • El valor de la convalidación entre convocatorias es inválido (no puede ser true si el curso no se crea con convocatorias) ->> Error CRS045 / 400 (Bad Request)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Crear convocatoria de curso


Se consumirán dos tipos de recursos application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: POST

URL:

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/parentId/2030

BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&editionName=Edición curso&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&rateable=ONLY_ENROLMENTS&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura


BODY - application/json
{
  "external_id": "extId1",
  "editionName": "Edición curso",
  "capacity": 10,
  "startDateMode": "MANUAL",
  "startDate": 1420844400000,
  "endDateMode": "MANUAL",
  "endDate": 1431208800000,
  "enrolmentPolicy": "REQUEST_ENROLLMENT",
  "requestEnrolmentStartDate": 1420844400000,
  "requestEnrolmentEndDateMode": "MANUAL",
  "requestEnrolmentEndDate": 1431208800000,
  "rateable": "ONLY_ENROLMENTS",
  "categories": [
    {"id": 2 }, {"id": 3}
  ],
  "extendedFields": [
    {"extendedFieldName": " Deportes ", "extendedFieldValue": " true "},
    {"extendedFieldName": " Actividades extraescolares ", "extendedFieldValue": " Pintura "}
  ]
 }

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • editionName = Nombre (String, obligatorio)
  • capacity = Número máximo de alumnos que puede tener la convocatoria (Integer, opcional)
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • 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 de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • rateable = Curso valorable por los alumnos o no valorable (String, opcional) 
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE
  • idCategory (lista) (versión urlencoded)= Listado de ids para añadir categorías (Long, opcional)
  • categories (versión json)= Listado de categorías a añadir (pueden ir con id o external_id) (Lista json, opcional) 
    • id Id de la categoría que se quiere añadir (Long, opcional)
    • external_id Id externo de la categoría que se quiere añadir (String, opcional)
  • extendedFields[nombre del campo extendido] (lista) (versión urlencoded) = 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 --> el identificador correspondiente al valor en la lista
  • extendedFields (versión json) = Lista de campos extendidos que se quieren añadir. N ombre 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
    • Los objetos de la lista tendrán dos atributos:
      • extendedFieldName: Nombre de la propiedad extendida 
      • extendedFieldValue: Valor de la propiedad extendida 
        • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • El valor de los días de disponibilidad del alumno no son válidos -> Error CRS52 (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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • El valor del campo rateable es incorrecto –> Error CRS041 / 400 (Bad Request)
  • El valor de la capacidad tiene que ser un entero positivo --> Error CS048 / 400 (Bad Request)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Clonar convocatoria de curso


Se consumirán dos tipos de recursos application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: POST

URL:

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/parentId/2030


BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&editionName=Curso de diseño gráfico&clonedFromId=1


BODY - application/json
{
  "external_id": "excourse1",
  "editionName": "Curso de diseño gráfico",
  "clonedFromId": 1
}

Parámetros

  • external_id = Id externo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • editionName = Nombre (String, obligatorio)
  • clonedFromId = Identificador de curso que se clona (Long)
  • clonedFromExternalId = Id. externo de curso que se clona (String) (se deja de usar en la versión JSON)

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • Id. de curso inexistente --> Error ERR004 / 404 (Not Found)
  • Id. externo de curso inexistente --> Error ERR005 / 404 (Not Found)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Modificar curso (v1)


Esta versión lleva la entrada con Content-Type: application/x-www-form-urlencoded, se recomienda el uso de la nueva versión, que consume json.

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/courses/id/{id}
  • Modificar por external id: 
    • /admin/rest/administration/api/courses/externalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/x-www-form-urlencoded
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
  • endDate = Fecha de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • idCategory (lista) = Listado de ids para añadir categorías (Long, opcional*) * La lista de categorías reemplaza a la existente.
  • externalidCategory (lista) = Listado de ids externos para añadir categorías (String, opcional*) * La lista de categorías reemplaza a la existente.
  • 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. La lista de campos extendidos reemplazará al ya existente, esto puede ocasionar que se borren valores.
    • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El curso está publicado y se cambia la fecha de inicio de manual a fecha de publicación --> Error CRS004 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de sus actividades --> Error CRS015 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de sus actividades --> Error CRS016 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de sus actividades --> Error CRS017 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de sus actividades --> Error CRS018 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS019 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de las sesiones formativas --> Error CRS020 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS021 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de las sesiones formativas --> Error CRS022 / 400 (Bad Request)
  • El curso no se puede modificar porque está en estado finalizado --> Error CRS023 / 400 (Bad Request)
  • Error inesperado al editar el curso --> Error CRS024 / 400 (Bad Request)
  • No se puede editar un curso con convocatorias --> Error CRS050 / 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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Modificar curso (v2)


Se consumirán dos tipos de recursos:

  • Content-Type: application/json
  • Content-Type: application/x-www-form-urlencoded

application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/courses/id/{id}
  • Modificar por external id: 
    • /admin/rest/administration/api/courses/externalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&evaluationType=MIN_SCORE&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura


BODY - application/json
 {
  "external_id": "excourse1",
  "name": "Curso de diseño gráfico",
  "description": "Conocimiento básicos sobre diseño gráfico y web",
  "objectives": "Aprender a hacer sencillas páginas web y worpress",
  "comments": "Opcional",
  "evaluationType": "MIN_SCORE",
  "percentageToPass": 50,
  "issueCertificate": "PASSED",
  "startDateMode": "MANUAL",
  "startDate": 1420844400000,
  "endDateMode": "MANUAL",
  "endDate": 1431208800000,
  "enrolmentPolicy": "REQUEST_ENROLLMENT",
  "requestEnrolmentStartDate": 1420844400000,
  "requestEnrolmentEndDateMode": "MANUAL",
  "requestEnrolmentEndDate": 1431208800000,
  "hasForum": "true",
  "hasMessage": "false",
  "categories": [
    {"id": 2}, {"id": 3}
  ],
  "extendedFields": [
    {"extendedFieldName": "Deportes", "extendedFieldValue": "true"},
    {"extendedFieldName": "Actividades extraescolares", "extendedFieldValue": "Pintura"}
  ]
}

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • evaluationType = Sistema de evaluación seleccionado (String, opcional)
    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
  • endDate = Fecha de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • idCategory (lista) = Listado de ids para añadir categorías (Long, opcional*) * La lista de categorías reemplaza a la existente.
  • externalidCategory (lista) = Listado de ids externos para añadir categorías (String, opcional*) * La lista de categorías reemplaza a la existente.
  • 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. La lista de campos extendidos reemplazará al ya existente, esto puede ocasionar que se borren valores.
    • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El curso está publicado y se cambia la fecha de inicio de manual a fecha de publicación --> Error CRS004 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de sus actividades --> Error CRS015 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de sus actividades --> Error CRS016 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de sus actividades --> Error CRS017 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de sus actividades --> Error CRS018 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS019 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de las sesiones formativas --> Error CRS020 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS021 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de las sesiones formativas --> Error CRS022 / 400 (Bad Request)
  • El valor del campo rateable es incorrecto –> Error CRS041 / 400 (Bad Request)
  • El curso no se puede modificar porque está en estado finalizado --> Error CRS023 / 400 (Bad Request)
  • Error inesperado al editar el curso --> Error CRS024 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no es válido --> Error CRS037 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no se puede cambiar debido a que no hay actividades obligatorias --> Error CRS038 / 400 (Bad Request)
  • No se puede editar un curso con convocatorias --> Error CRS050 / 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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Modificar curso (v3)


Se consumirán dos tipos de recursos:

  • Content-Type: application/json
  • Content-Type: application/x-www-form-urlencoded

application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/courses/id/{id}
  • Modificar por external id: 
    • /admin/rest/administration/api/courses/externalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/x-www-form-urlencoded (deprecated)
external_id=excourse1&name=Curso de diseño 
gráfico&description=Conocimiento básicos sobre diseño gráfico y 
web&objectives=Aprender a hacer sencillas páginas web y 
worpress&comments=Opcional&evaluationType=MIN_SCORE&percentageToPass=50&issueCertificate=PASSED&startDateMode=MANUAL&startDate=1420844400000&endDateMode=MANUAL&endDate=1431208800000&enrolmentPolicy=REQUEST_ENROLLMENT&requestEnrolmentStartDate=1420844400000&requestEnrolmentEndDateMode=MANUAL&requestEnrolmentEndDate=1431208800000&hasForum=true&hasMessage=false&rateable=ONLY_ENROLMENTS&idCategory=2&idCategory=3&idCategory=4&extendedField[Deportes]=true&extendedField[Actividades
 extraescolares]=Pintura


BODY - application/json
 {
  "external_id": "excourse1",
  "name": "Curso de diseño gráfico",
  "description": "Conocimiento básicos sobre diseño gráfico y web",
  "objectives": "Aprender a hacer sencillas páginas web y worpress",
  "comments": "Opcional",
  "evaluationType": "MIN_SCORE",
  "percentageToPass": 50,
  "issueCertificate": "PASSED",
  "startDateMode": "MANUAL",
  "startDate": 1420844400000,
  "endDateMode": "MANUAL",
  "endDate": 1431208800000,
  "enrolmentPolicy": "REQUEST_ENROLLMENT",
  "requestEnrolmentStartDate": 1420844400000,
  "requestEnrolmentEndDateMode": "MANUAL",
  "requestEnrolmentEndDate": 1431208800000,
  "hasForum": "true",
  "hasMessage": "false",
  "rateable": "ONLY_ENROLMENTS",
  "categories": [
    {"id": 2}, {"id": 3}
  ],
  "extendedFields": [
    {"extendedFieldName": "Deportes", "extendedFieldValue": "true"},
    {"extendedFieldName": "Actividades extraescolares", "extendedFieldValue": "Pintura"}
  ]
}

Parámetros

  • external_id = Id externo (String, obligatorio) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • evaluationType = Sistema de evaluación seleccionado (String, opcional)
    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio) 
    • Valores permitidos: 
      • Número entre 0 y 100
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • startDateMode = Tipo fecha de inicio (String, obligatorio) 
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio) 
    • Valores permitidos: 
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
  • endDate = Fecha de fin en milisegundos (Long, opcional*) 
    *obligatoria si endDateMode = MANUAL
  • enrolmentPolicy = Política de inscripción (String, obligatorio) 
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • rateable = Curso valorable por los alumnos o no valorable (String, opcional) 
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE
  • idCategory (lista) = Listado de ids para añadir categorías (Long, opcional*) * La lista de categorías reemplaza a la existente.
  • externalidCategory (lista) = Listado de ids externos para añadir categorías (String, opcional*) * La lista de categorías reemplaza a la existente.
  • 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. La lista de campos extendidos reemplazará al ya existente, esto puede ocasionar que se borren valores.
    • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El curso está publicado y se cambia la fecha de inicio de manual a fecha de publicación --> Error CRS004 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de sus actividades --> Error CRS015 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de sus actividades --> Error CRS016 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de sus actividades --> Error CRS017 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de sus actividades --> Error CRS018 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS019 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de las sesiones formativas --> Error CRS020 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS021 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de las sesiones formativas --> Error CRS022 / 400 (Bad Request)
  • El curso no se puede modificar porque está en estado finalizado --> Error CRS023 / 400 (Bad Request)
  • Error inesperado al editar el curso --> Error CRS024 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no es válido --> Error CRS037 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no se puede cambiar debido a que no hay actividades obligatorias --> Error CRS038 / 400 (Bad Request)
  • No se puede editar un curso con convocatorias --> Error CRS050 / 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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Modificar curso (v4)


Esta versión SOLAMENTE lleva la entrada con Content-Type: application/json

 En las versiones anteriores application/x-www-form-urlencoded ya se había marcado como deprecated.

Método: PUT

URL:

  • Modificar por id: 
    • /admin/rest/administration/api/courses/id/{id}
  • Modificar por external id: 
    • /admin/rest/administration/api/courses/externalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030


BODY - application/json
 {
        "parent": {
            "parentExternal_id": "ext_3537",
            "name": "Curso parent",
            "description": "",
            "comments": "",
            "objectives": "",
            "issueCertificate": "PASSED",
            "evaluationType": "PASSED_MANDATORY_ACTIVITIES",
            "percentageToPass": 100,
            "hasForum": false,
            "hasMessage": false,
            "hasReminder": false,
            "hasStartReminder": true,
            "hasEditions": true,
            "recogniseEditions": false
        },
        "external_id": "ext3538",
        "editionName": "Curso convocatoria",
        "startDateMode": "MANUAL",
        "endDateMode": "MANUAL",
        "studentAvailableDays": null,
        "enrolmentPolicy": "AUTO_ENROLLMENT",
        "categories": [
    		{"id": 2}, {"id": 3}
		],
		"extendedFields": [
    		{"extendedFieldName": "Deportes", "extendedFieldValue": "true"},
			{"extendedFieldName": "Actividades extraescolares", "extendedFieldValue": "Pintura"}
		],
        "capacity": 22,
        "startDate": 1536710400000,
        "endDate": 1538179199000,
        "requestEnrolmentEndDate": 1537488059000,
        "requestEnrolmentEndDateMode": "MANUAL",
        "rateable": "ONLY_ENROLMENTS"
    }

Cabeceras

NLC-limitAccessDate. Opcional, valores permitidos: recalculate

Si esta cabecera tiene el valor recalculate se recalculará la fecha límite de acceso para cada alumno del curso en función del campo studentAvailableDays y de la fecha de primer acceso. Mismo comportamiento que el check que hay en la interfaz de central.

Parámetros

Campos específicos del parent:

  • parentExternal_id = Id externo del padre (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • name = Nombre del parent (String, obligatorio)
  • description = Descripción (String, opcional)
  • objectives = Objetivos (String, opcional)
  • comments = Observaciones (String, opcional)
  • evaluationType = Sistema de evaluación seleccionado (String, opcional)
    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE
  • issueCertificate = Expedir certificado (String, opcional) 
    • Valor por defecto: NO
    • Valores permitidos:
      • 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
  • percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, obligatorio
    • Valores permitidos: 
      • Número entre 0 y 100
  • hasForum = Tiene sección para el foro (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasMessage = Tiene sección para los mensajes (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
  • hasReminder Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en 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

Campos específicos de una convocatoria:

  • external_id = Id externo (String, obligatorio(warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /
  • editionName = Nombre (String, obligatorio)
  • startDateMode = Tipo fecha de inicio (String, obligatorio
    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
    • *obligatoria si startDateMode = MANUAL
  • endDateMode = Tipo fecha de fin (String, obligatorio
    • Valores permitidos: 
      • 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 de fin en milisegundos (Long, opcional*) 
    • *obligatoria si endDateMode = MANUAL
  • enrolmentPolicy = Política de inscripción (String, obligatorio
    • Valores permitidos: 
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción
  • requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
    • *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT
  • requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
    • *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT 
    • Valores permitidos: 
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual
  • requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
    • *obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL
  • rateable = Curso valorable por los alumnos o no valorable (String, opcional) 
    • Valores permitidos: 
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE
  • categories(lista) = Listado de ids para añadir categorías (Long, opcional*) * La lista de categorías reemplaza a la existente.
  • externalidCategory (lista) = Listado de ids externos para añadir categorías (String, opcional*) * La lista de categorías reemplaza a la existente.
  • capacity = Máximo aforo para una convocatoria (Integer, opcional)

extendedFields[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. La lista de campos extendidos reemplazará al ya existente, esto puede ocasionar que se borren valores.

  • 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 --> el identificador correspondiente al valor en la lista

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El valor del porcentaje no es válido --> Error CRS001 / 400 (Bad Request)
  • El valor del modo de expedición del certificado no es válido --> Error CRS002 / 400 (Bad Request)
  • El valor del modo de la fecha de inicio no es válido --> Error CRS003 / 400 (Bad Request)
  • El curso está publicado y se cambia la fecha de inicio de manual a fecha de publicación --> Error CRS004 / 400 (Bad Request)
  • El valor del modo de la fecha de fin no es válido --> Error CRS005 / 400 (Bad Request)
  • El valor de la política de inscripción no es válido --> Error CRS007 / 400 (Bad Request)
  • El valor del modo de la fecha de fin de inscripción al curso no es válido --> Error CRS008 / 400 (Bad Request)
  • Error añadiendo categorías, alguna no existe --> Error CRS009 / 400 (Bad Request)
  • Error añadiendo categorías, no se ha introducido el valor para algún id o id externo --> Error CRS010 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor o igual que la fecha de fin de curso --> Error CRS011 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de solicitud de inscripción --> Error CRS012 / 400 (Bad Request)
  • La fecha de inicio de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS013 / 400 (Bad Request)
  • La fecha de fin de solicitud de inscripción es mayor que la fecha de fin de curso --> Error CRS014 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de sus actividades --> Error CRS015 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de sus actividades --> Error CRS016 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de sus actividades --> Error CRS017 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de sus actividades --> Error CRS018 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS019 / 400 (Bad Request)
  • La fecha de inicio de curso es mayor que la fecha de fin de alguna de las sesiones formativas --> Error CRS020 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de inicio de alguna de las sesiones formativas --> Error CRS021 / 400 (Bad Request)
  • La fecha de fin de curso es menor que la fecha de fin de alguna de las sesiones formativas --> Error CRS022 / 400 (Bad Request)
  • El curso no se puede modificar porque está en estado finalizado --> Error CRS023 / 400 (Bad Request)
  • Error inesperado al editar el curso --> Error CRS024 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no es válido --> Error CRS037 / 400 (Bad Request)
  • El valor del tipo de sistema de evaluación no se puede cambiar debido a que no hay actividades obligatorias --> Error CRS038 / 400 (Bad Request)
  • El valor de convalidación de convocatorias no se puede poner a true si el curso no tiene convocatorias --> Error ERROR_CRS045 / 400 (Bad Request)
  • El valor de capacidad debe de ser mayor que cero --> Error ERROR_CRS048 / 400 (Bad Request)
  • No se puede desactivar las convocatorias en un curso que ya estaba configurado para tener convocatorias --> Error ERROR_CRS049 / 400 (Bad Request)
  • El valor de los días de disponibilidad del alumno no son válidos -> Error CRS52 (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 algun 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
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)


Aplicar diff curso (v2)


Se consumirán recursos tipo json:

Content-Type: application/json

Este método será parecido al de modificar un curso, sólo que aplicando diferencias sobre lo que se quiere cambiar y no enviando todos los datos del curso. Además con este método también se puede modificar el estado de un curso, pero en ese caso sólo se puede modificar el estado y no se permite la modificación de más atributos en la misma petición.

Método: PATCH

Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"

URL:

Modificar por id:

  • /admin/rest/administration/api/courses/id/{id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/json
[
{ "op": "replace", "path": "/categories", "value": [{"id":18}] },
{ "op": "add", "path": "/external_id", "value": "extId3994" },
{ "op": "replace", "path": "/extendedFields", "value": [{"extendedFieldName": "GRUPO_ID", "extendedFieldValue": "111"}] },
{ "op": "replace", "path": "/description", "value": "Conocimiento básicos sobre diseño gráfico y web" }
]


BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "PUBLISHED" }
]

Operaciones permitidas

Se permiten las operaciones del RFC-6902. En path se pondría el parámetro a operar.

 [{ "op": "test", "path": "/a/b/c", "value": "foo" }, 
{
 "op": "remove", "path": "/a/b/c" }, 
{
 "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" }, 
{
 "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]

Parámetros modificables ("path" y "value" posibles)

status = Nuevo estado del curso (String, opcional**)

  • Valores permitidos:
    • PUBLISHED = Publicar
    • CLOSED = Finalizar

** Si se cambia el estado, no se permite cambiar ningún otro campo del curso

external_id = Id externo (si no lo tenía hay que incluírlo en una operación add)

name = Nombre (String, opcional)

description = Descripción (String, opcional)

objectives = Objetivos (String, opcional)

comments = Observaciones (String, opcional)

evaluationType = Sistema de evaluación seleccionado (String, opcional)

  • Valores permitidos:
    • PASSED_MANDATORY_ACTIVITIES
    • MIN_SCORE

percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, opcional)

  • Valores permitidos:
    • Número entre 0 y 100

issueCertificate = Expedir certificado (String, opcional)

  • Valor por defecto: NO
  • Valores permitidos:
    • 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

startDateMode = Tipo fecha de inicio (String, opcional)

  • Valores permitidos:
    • 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 de inicio en milisegundos (Long, opcional*) 
*obligatoria si startDateMode = MANUAL

endDateMode = Tipo fecha de fin (String, opcional)

  • Valores permitidos:
    • NONE --> Ninguna, el administrador finalizará el curso manualmente
    • MANUAL --> La fecha de fin se establecerá de forma manual

endDate = Fecha de fin en milisegundos (Long, opcional*) 
*obligatoria si endDateMode = MANUAL

enrolmentPolicy = Política de inscripción (String, opcional)

  • Valores permitidos:
    • AUTO_ENROLLMENT --> Auto inscripción
    • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
    • REQUEST_ENROLLMENT --> Solicitar inscripción

requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

  • Valores permitidos:
    • INHERIT --> Heredada del curso
    • MANUAL --> Se establecerá de forma manual

requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL

hasForum = Tiene sección para el foro (Boolean, opcional)

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasMessage = Tiene sección para los mensajes (Boolean, opcional)

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

categories (lista) = Listado de categorías para añadir (opcional*) * La lista de categorías reemplaza a la existente(da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa). Se pueden añadir categorías con "id" o con "external_id" [{"id":valorNumérico},{"external_id": "idExterno"}]

extendedFields (lista) = Nombre y valor de los campos extensibles ({"extendedFieldName": "NombreDelCampoExteindido", "extendedFieldValue": "ValorDelCampoExtendido"}, obligatorio*)
* solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto. La lista de campos extendidos reemplazará al ya existente (da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa), esto puede ocasionar que se borren valores.

  • 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 --> el identificador correspondiente al valor en la lista

Opciones

Ésto no es estándar y la detectamos específicamente en este caso, si se incluyen para cualquier otro caso simplemente sarán ignoradas.

Cuando añadimos una operación que cambie el estado del curso a CLOSED, podemos agregarle a mayores una opción con el valor "keepEndDate" si deseamos que mantenga la fecha fin configurada y no la sobreescriba con la actual (Para cursos con fecha fin manual).

Ejemplo:

BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "CLOSED", "option": "keepEndDate" }
]

Validaciones

  • Las mismas que en "Modificar curso (v2)" si se cambian valores del curso (salvo status).
  • Las mismas que en "Cambiar el estado de un curso" si se cambia el valor de status.
  • Se ha modificado el campo status y otros valores de curso --> Error CSR039 / 400 (Bad Request).
  • Json de operaciones de diferencias incorrecto (verbos no permitidos, path incorrecto, valores no permitidos) --> Error CSR040 / 400 (Bad Request).

Aplicar diff curso (v3)


Se consumirán recursos tipo json:

Content-Type: application/json

Este método será parecido al de modificar un curso, sólo que aplicando diferencias sobre lo que se quiere cambiar y no enviando todos los datos del curso. Además con este método también se puede modificar el estado de un curso, pero en ese caso sólo se puede modificar el estado y no se permite la modificación de más atributos en la misma petición.

Método: PATCH

Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"

URL:

Modificar por id:

  • /admin/rest/administration/api/courses/id/{id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/json
[
{ "op": "replace", "path": "/categories", "value": [{"id":18}] },
{ "op": "add", "path": "/external_id", "value": "extId3994" },
{ "op": "replace", "path": "/extendedFields", "value": [{"extendedFieldName": "GRUPO_ID", "extendedFieldValue": "111"}] },
{ "op": "replace", "path": "/description", "value": "Conocimiento básicos sobre diseño gráfico y web" }
]


BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "PUBLISHED" }
]

Operaciones permitidas

Se permiten las operaciones del RFC-6902. En path se pondría el parámetro a operar.

 [{ "op": "test", "path": "/a/b/c", "value": "foo" }, 
{
 "op": "remove", "path": "/a/b/c" }, 
{
 "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" }, 
{
 "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]

Parámetros modificables ("path" y "value" posibles)

status = Nuevo estado del curso (String, opcional**)

  • Valores permitidos:
    • PUBLISHED = Publicar
    • CLOSED = Finalizar

** Si se cambia el estado, no se permite cambiar ningún otro campo del curso

external_id = Id externo (si no lo tenía hay que incluírlo en una operación add)

name = Nombre (String, opcional)

description = Descripción (String, opcional)

objectives = Objetivos (String, opcional)

comments = Observaciones (String, opcional)

evaluationType = Sistema de evaluación seleccionado (String, opcional)

  • Valores permitidos:
    • PASSED_MANDATORY_ACTIVITIES
    • MIN_SCORE

percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, opcional)

  • Valores permitidos:
    • Número entre 0 y 100

issueCertificate = Expedir certificado (String, opcional)

  • Valor por defecto: NO
  • Valores permitidos:
    • 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

startDateMode = Tipo fecha de inicio (String, opcional)

  • Valores permitidos:
    • 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 de inicio en milisegundos (Long, opcional*) 
*obligatoria si startDateMode = MANUAL

endDateMode = Tipo fecha de fin (String, opcional)

  • Valores permitidos:
    • NONE --> Ninguna, el administrador finalizará el curso manualmente
    • MANUAL --> La fecha de fin se establecerá de forma manual

endDate = Fecha de fin en milisegundos (Long, opcional*) 
*obligatoria si endDateMode = MANUAL

enrolmentPolicy = Política de inscripción (String, opcional)

  • Valores permitidos:
    • AUTO_ENROLLMENT --> Auto inscripción
    • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
    • REQUEST_ENROLLMENT --> Solicitar inscripción

requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

  • Valores permitidos:
    • INHERIT --> Heredada del curso
    • MANUAL --> Se establecerá de forma manual

requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL

hasForum = Tiene sección para el foro (Boolean, opcional)

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasMessage = Tiene sección para los mensajes (Boolean, opcional)

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

rateable = Curso valorable por los alumnos o no valorable (String, opcional) 

  • Valores permitidos:
    • NONE : no valorable
    • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
  • Valor por defecto: NONE

categories (lista) = Listado de categorías para añadir (opcional*) * La lista de categorías reemplaza a la existente(da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa). Se pueden añadir categorías con "id" o con "external_id" [{"id":valorNumérico},{"external_id": "idExterno"}]

extendedFields (lista) = Nombre y valor de los campos extensibles ({"extendedFieldName": "NombreDelCampoExteindido", "extendedFieldValue": "ValorDelCampoExtendido"}, obligatorio*)
* solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto. La lista de campos extendidos reemplazará al ya existente (da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa), esto puede ocasionar que se borren valores.

  • 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 --> el identificador correspondiente al valor en la lista

Opciones

Ésto no es estándar y la detectamos específicamente en este caso, si se incluyen para cualquier otro caso simplemente sarán ignoradas.

Cuando añadimos una operación que cambie el estado del curso a CLOSED, podemos agregarle a mayores una opción con el valor "keepEndDate" si deseamos que mantenga la fecha fin configurada y no la sobreescriba con la actual (Para cursos con fecha fin manual).

Ejemplo:

BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "CLOSED", "option": "keepEndDate" }
]

Validaciones

  • Las mismas que en "Modificar curso (v3)" si se cambian valores del curso (salvo status).
  • Las mismas que en "Cambiar el estado de un curso" si se cambia el valor de status.
  • Se ha modificado el campo status y otros valores de curso --> Error CSR039 / 400 (Bad Request).
  • Json de operaciones de diferencias incorrecto (verbos no permitidos, path incorrecto, valores no permitidos) --> Error CSR040 / 400 (Bad Request).

Aplicar diff curso (v4)


Se consumirán recursos tipo json:

Content-Type: application/json

Este método será parecido al de modificar un curso, sólo que aplicando diferencias sobre lo que se quiere cambiar y no enviando todos los datos del curso. Además con este método también se puede modificar el estado de un curso, pero en ese caso sólo se puede modificar el estado y no se permite la modificación de más atributos en la misma petición.

Método: PATCH

Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"

URL:

Modificar por id:

  • /admin/rest/administration/api/courses/id/{id}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030

BODY - application/json
[
{ "op": "replace", "path": "/categories", "value": [{"id":18}] },
{ "op": "add", "path": "/external_id", "value": "extId3994" },
{ "op": "replace", "path": "/extendedFields", "value": [{"extendedFieldName": "GRUPO_ID", "extendedFieldValue": "111"}] },
{ "op": "replace", "path": "/parent/description", "value": "Conocimiento básicos sobre diseño gráfico y web" }
]


BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "PUBLISHED" }
]

Cabeceras

NLC-limitAccessDate. Opcional, valores permitidos: recalculate

Si esta cabecera tiene el valor recalculate se recalculará la fecha límite de acceso para cada alumno del curso en función del campo studentAvailableDays y de la fecha de primer acceso. Mismo comportamiento que el check que hay en la interfaz de central.

Operaciones permitidas

Se permiten las operaciones del RFC-6902. En path se pondría el parámetro a operar.

 [{ "op": "test", "path": "/a/b/c", "value": "foo" }, 
{
 "op": "remove", "path": "/a/b/c" }, 
{
 "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" }, 
{
 "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]

Parámetros modificables ("path" y "value" posibles)

Parámetros específicos del parent, para todos ellos se debe de especificar el path parent/nombre del parámetro:

parentExternal_id = Id externo del padre (si no lo tenía hay que incluirlo en una operación add)

name = Nombre del padre (String, opcional)

description = Descripción (String, opcional)

objectives = Objetivos (String, opcional)

comments = Observaciones (String, opcional)

evaluationType = Sistema de evaluación seleccionado (String, opcional)

    • Valores permitidos:
      • PASSED_MANDATORY_ACTIVITIES
      • MIN_SCORE

percentageToPass = Porcentaje de actividades obligatorias para pasar el curso (Integer, opcional)

    • Valores permitidos:
      • Número entre 0 y 100

issueCertificate = Expedir certificado (String, opcional)

    • Valor por defecto: NO
    • Valores permitidos:
      • 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

hasForum = Tiene sección para el foro (Boolean, opcional)

    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE

hasMessage = Tiene sección para los mensajes (Boolean, opcional)

    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE

hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 

    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE

hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 

    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en 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


Parámetros específicos de la convocatoria:

external_id = Id externo (si no lo tenía hay que incluírlo en una operación add)

status = Nuevo estado del curso (String, opcional**)

    • Valores permitidos:
      • PUBLISHED = Publicar
      • CLOSED = Finalizar

** Si se cambia el estado, no se permite cambiar ningún otro campo del curso

editionName = Nombre de la convocatoria (String, opcional)

startDateMode = Tipo fecha de inicio (String, opcional)

    • Valores permitidos:
      • 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 de inicio en milisegundos (Long, opcional*) 
*obligatoria si startDateMode = MANUAL

endDateMode = Tipo fecha de fin (String, opcional)

    • Valores permitidos:
      • NONE --> Ninguna, el administrador finalizará el curso manualmente
      • MANUAL --> La fecha de fin se establecerá de forma manual
      • FIRST_ACCESS --> Fecha fin a partir del 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 de fin en milisegundos (Long, opcional*) 
*obligatoria si endDateMode = MANUAL

enrolmentPolicy = Política de inscripción (String, opcional)

    • Valores permitidos:
      • AUTO_ENROLLMENT --> Auto inscripción
      • ADMIN_ENROLLMENT --> Sólo los administradores pueden inscribir alumnos
      • REQUEST_ENROLLMENT --> Solicitar inscripción

requestEnrolmentStartDate = Fecha de inicio de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

requestEnrolmentEndDateMode = Tipo de fecha de fin en solicitud de inscripción (String, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT

    • Valores permitidos:
      • INHERIT --> Heredada del curso
      • MANUAL --> Se establecerá de forma manual

requestEnrolmentEndDate = Fecha de fin de solicitud de inscripción en milisegundos (Long, opcional*) 
*obligatoria si enrolmentPolicy = REQUEST_ENROLLMENT y requestEnrolmentEndDateMode = MANUAL

rateable = Curso valorable por los alumnos o no valorable (String, opcional) 

    • Valores permitidos:
      • NONE : no valorable
      • ONLY_ENROLMENTS : los alumnos inscritos pueden valorar el curso
    • Valor por defecto: NONE

categories (lista) = Listado de categorías para añadir (opcional*) * La lista de categorías reemplaza a la existente(da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa). Se pueden añadir categorías con "id" o con "external_id" [{"id":valorNumérico},{"external_id": "idExterno"}]

extendedFields (lista) = Nombre y valor de los campos extensibles ({"extendedFieldName": "NombreDelCampoExteindido", "extendedFieldValue": "ValorDelCampoExtendido"}, obligatorio*)
* solo son obligatorios aquellos campos extensibles que estén marcados como obligatorios y no tengan definido ningún valor por defecto. La lista de campos extendidos reemplazará al ya existente (da igual las operaciones de add o replace, sólo tiene en cuenta la nueva lista que se le pasa), esto puede ocasionar que se borren valores.

    • 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 --> el identificador correspondiente al valor en la lista

capacity = Máximo aforo de una convocatoria (Integer, opcional)

Opciones

Ésto no es estándar y la detectamos específicamente en este caso, si se incluyen para cualquier otro caso simplemente sarán ignoradas.

Cuando añadimos una operación que cambie el estado del curso a CLOSED, podemos agregarle a mayores una opción con el valor "keepEndDate" si deseamos que mantenga la fecha fin configurada y no la sobreescriba con la actual (Para cursos con fecha fin manual).

Ejemplo:

BODY - application/json
[
{ "op": "replace", "path": "/status", "value": "CLOSED", "option": "keepEndDate" }
]

Validaciones

  • Las mismas que en "Modificar curso (v4)" si se cambian valores del curso (salvo status).
  • Las mismas que en "Cambiar el estado de un curso" si se cambia el valor de status.
  • Se ha modificado el campo status y otros valores de curso --> Error CSR039 / 400 (Bad Request).
  • Json de operaciones de diferencias incorrecto (verbos no permitidos, path incorrecto, valores no permitidos) --> Error CSR040 / 400 (Bad Request).

Cambiar estado de un curso

Método: PUT

URL:

Cambiar estado por id:

  • /admin/rest/administration/api/courses/id/{id}/status

Cambiar estado por external id:

  • /admin/rest/administration/api/courses/externalid/{external_id}/status


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:  https://demo.central-lms.com/admin/rest/administration/api/courses/id/203/status

BODY - application/x-www-form-urlencoded
value=PUBLISHED

Parámetros

value = Nuevo estado del curso (String, obligatorio)

  • Valores permitidos:
    • PUBLISHED = Publicar
    • CLOSED = Finalizar

Validaciones

  • Parámetro value sin cubrir --> Error ERR001 / 400 (Bad Request)
  • El estado proporcionado no es válido --> Error CRS029 / 400 (Bad Request)
  • El cambio de estado que se intenta hacer no está permitido --> Error CRS030 / 400 (Bad Request)
  • No se puede cambiar el estado del curso ya que no tiene ninguna actividad obligatoria --> Error CRS031 / 400 (Bad Request)
  • No se puede cambiar el estado del curso ya que se modificaría la fecha de inicio del mismo provocando que supere a la fecha de inicio de alguna de sus actividades --> Error CRS032 / 400 (Bad Request)
  • No se puede cambiar el estado del curso ya que se modificaría alguna fecha de inicio de alguna actividad provocando rangos incorrectos entre las fechas de inicio y fin de la propia actividad o en relación a sus acciones formativas --> Error CRS034 / 400 (Bad Request)
  • Error inesperado al cambiar el estado del curso --> Error CRS035 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Obtener todos los cursos (v1,v2)

Método: GET

URL:

Obtener todos los cursos sin paginación:

  • /admin/rest/administration/api/courses

Obtener todos los cursos con paginación:

  • /admin/rest/administration/api/courses?startIndex={startIndex}&count={count}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/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)

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:

id = Identificador

external_id = Id externo

name = Nombre del curso

description = Descripción del curso

comments = Comentarios del curso

objectives = Objetivos del curso

moduleType = Tipo de módulo

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

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)

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.  

hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 

  • Valores permitidos: TRUE / FALSE
  • Valor por defecto: FALSE
  • Cualquier valor que no sea TRUE, se transformará en FALSE

status = Estado del curso

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)

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

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)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK
  • Si no hay paginación --> 200 (OK) + JSON
  • Si hay paginación --> 206 (Partial Content) + JSON

Obtener todos los cursos (v3)

Método: GET

URL:

Obtener todos los cursos sin paginación:

  • /admin/rest/administration/api/courses

Obtener todas los cursos con paginación:

  • /admin/rest/administration/api/courses?startIndex={startIndex}&count={count}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/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)

planId = Filtrar por cursos dentro del plan (Long, 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.

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:

id = Identificador

external_id = Id externo

name = Nombre del curso

description = Descripción del curso

comments = Comentarios del curso

objectives = Objetivos del curso

moduleType = Tipo de módulo

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

evaluationType = Sistema de evaluación seleccionado

      • Valores permitidos:
        • PASSED_MANDATORY_ACTIVITIES
        • MIN_SCORE
  • 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)
  • sessionOrganization = Organización de acciones formativas
    • MANUAL --> Manual
    • AUTOMATIC --> Automática para actividades de auto-aprendizaje y manual para el resto
  • 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.  
  • hasReminder = Activar recordatorio a usuarios que llevan un tiempo sin acceder (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • hasStartReminder = Activar recordatorios de la fecha de inicio del curso (Boolean, opcional) 
    • Valores permitidos: TRUE / FALSE
    • Valor por defecto: FALSE
    • Cualquier valor que no sea TRUE, se transformará en FALSE
  • status = Estado del curso
  • 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) 
  • 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

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)

Todo OK

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

Obtener todos los cursos (v4)

Método: GET

URL:

  • Obtener todos los cursos sin paginación: 
    • /admin/rest/administration/api/courses
  • Obtener todos los cursos con paginación:
    • /admin/rest/administration/api/courses?startIndex={startIndex}&count={count}
  • Obtener todas las convocatorias de un curso:
    • /admin/rest/administration/api/courses?parentId={parentId}
    • /admin/rest/administration/api/courses?parenExternaltId={parentExternalId}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/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)
  • planId = Filtrar por cursos dentro del plan (Long, 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.
  • parentId = Filtrar por todos los cursos cuyo parentId es el proporcionado (Long, opcional)
  • parentExternalId = Filtrar por todos los cursos cuyo curso padre tiene el external id proporcionado (String, opcional)

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

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)

Todo OK

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

Obtener todos los cursos (v5)

Método: GET

URL:

  • Obtener todos los cursos sin paginación: 
    • /admin/rest/administration/api/courses
  • Obtener todos los cursos con paginación:
    • /admin/rest/administration/api/courses?startIndex={startIndex}&count={count}
  • Obtener todas las convocatorias de un curso:
    • /admin/rest/administration/api/courses?parentId={parentId}
    • /admin/rest/administration/api/courses?parenExternaltId={parentExternalId}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/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)
  • planId = Filtrar por cursos dentro del plan (Long, 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.
  • parentId = Filtrar por todos los cursos cuyo parentId es el proporcionado (Long, opcional)
  • parentExternalId = Filtrar por todos los cursos cuyo curso padre tiene el external id proporcionado (String, opcional)

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)

Todo OK

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

Obtener curso (v1,v2)

Método: GET

URL:

Obtener por id:

  • /admin/rest/administration/api/courses/id/{id}

Obtener por external id:

  • /admin/rest/administration/api/courses/externalid/{externalid}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2514

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

Curso, cada curso consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • name = Nombre del curso
  • description = Descripción del curso
  • comments = Comentarios del curso
  • objectives = Objetivos del curso
  • moduleType = Tipo de módulo
  • 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
  • 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)
  • 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.  
  • status = Estado del curso
  • 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)
  • 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

Validaciones

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

Obtener curso (v3)

Método: GET

URL:

Obtener por id:

  • /admin/rest/administration/api/courses/id/{id}

Obtener por external id:

  • /admin/rest/administration/api/courses/externalid/{externalid}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2514

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

Curso, cada curso consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • name = Nombre del curso
  • description = Descripción del curso
  • comments = Comentarios del curso
  • objectives = Objetivos del curso
  • moduleType = Tipo de módulo
  • 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
  • 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)
  • 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.  
  • status = Estado del curso
  • 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)
  • 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

Validaciones

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

Obtener curso (v4)

Método: GET

URL:

Obtener por id:

  • /admin/rest/administration/api/courses/id/{id}

Obtener por external id:

  • /admin/rest/administration/api/courses/externalid/{externalid}


Tanto el id como el externalid nunca se referirán a los identificadores del curso padre.

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2514

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

Curso, 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 edición
  • 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

Validaciones

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

Obtener curso (v5)

Método: GET

URL:

Obtener por id:

  • /admin/rest/administration/api/courses/id/{id}

Obtener por external id:

  • /admin/rest/administration/api/courses/externalid/{externalid}
Tanto el id como el externalid nunca se referirán a los identificadores del curso padre.

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2514

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

Curso, 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 edición
  • 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 existe el curso Error 404 (Not Found)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Eliminar curso

Método: DELETE

URL:

Eliminar por id:

  • /admin/rest/administration/api/courses/id/{id}

Eliminar por external id:

  • /admin/rest/administration/api/courses/externalid/{external_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2514

Validaciones

  • Error inesperado al eliminar el curso --> Error CRS036 / 400 (Bad Request)
  • No existe un curso con ese id o id externo --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Añadir grupos de administración a un curso

Método: POST

URL:

  • Añadir por id:
    • /admin/rest/administration/api/courses/id/{id}/groups?action={action}
  • Añadir por id externo:
    • /admin/rest/administration/api/courses/externalid/{externalid}/groups?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action = acción que se quiere realizar (añadir usando ids de grupos o ids externos) (String, obligatorio)
    • Valores permitidos 
      • addByIds
      • addByExternalids
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los grupos han sido añadidos--> 200 (OK)
  • Ejecución OK y algún grupo no ha podido ser añadido --> 200 (OK) + JSON

Obtener grupos de administración de un curso sin paginar

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/groups
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/groups


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/345/groups

Campos devueltos en el Json

Listado de grupos, cada grupo consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • parentId = Identificador de grupo padre
  • name = Nombre de grupo
  • description = Descripción de grupo
  • extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValuee 
    • extendedFieldName = Nombre del campo extendido
    • extendedFieldValue = Valor del campo extendido


Validaciones

  • Si el curso no existe --> Error 404 (Not Found)
  • No hay grupos --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Eliminar grupos de administración de un curso

Método: DELETE

URL:

  • Eliminar por id:
    • /admin/rest/administration/api/courses/id/{id}/groups?action={action}
  • Eliminar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/groups?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action = acción que se quiere realizar (eliminar usando ids de grupos o ids externos) (String, obligatorio)
    • Valores permitidos 
      • removeByIds
      • removeByExternalids
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los grupos han sido eliminados -> 200 (OK)
  • Ejecución OK y algún grupo no ha podido ser eliminado --> 200 (OK) + JSON

Añadir tutores a un curso

Método: POST

URL:

  • Añadir por id:
    • /admin/rest/administration/api/courses/id/{id}/tutors?action={action}
  • Añadir por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/tutors?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action = acción que se quiere realizar (añadir usando ids de usuario o ids externos) (String, obligatorio)
    • Valores permitidos
      • addByIds
      • addByExternalids
  • id (lista) = cada uno de los identificadores o identificadores externos (String, obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los usuarios han sido añadidos --> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Obtener tutores de un curso sin paginar

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/tutors
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/tutors


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/345/tutors

Campos devueltos en el Json

Listado de usuarios tutores, cada tutor consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • username = Nombre de usuario
  • firstName = Nombre
  • lastName = Apellidos
  • preferredLanguage = Idioma predeterminado
  • personTimezoneId = Zona horaria
  • roles = Roles del usuario
  • email = Correo electrónico del usuario
  • officePhoneNumber = Teléfono de oficina
  • mobilePhoneNumber = Teléfono móvil
  • address = Dirección
  • jobTitle = Puesto
  • location = Departamento
  • organization = Compañía
  • aboutMe = Sobre mí
  • interests = Intereses
  • status = Estado
  • extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
    • extendedFieldName = Nombre del campo extendido
    • extendedFieldValue = Valor del campo extendido

Validaciones

  • Si el curso no existe --> Error 404 (Not Found)
  • No hay usuarios --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON


Eliminar tutores de un curso

Método: DELETE

URL:

  • Eliminar por id:
    • /admin/rest/administration/api/courses/id/{id}/tutors?action={action}
  • Eliminar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/tutors?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/tutors?action=removeByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (eliminar usando ids de usuarios o ids externos) (String,obligatorio)
    • Valores permitidos
      • removeByIds
      • removeByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los tutores han sido eliminados -> 200 (OK)
  • Ejecución OK y algún tutor no ha podido ser eliminado --> 200 (OK) + JSON

Añadir estudiantes a un curso

Método: POST

URL:

  • Añadir por id:
    • /admin/rest/administration/api/courses/id/{id}/students?action={action}
  • Añadir por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/students?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/students?action=addByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (añadir usando ids de usuario o ids externos) (String,obligatorio)
    • Valores permitidos
      • addByIds
      • addByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún usuario haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No se puede añadir estudiantes al curso --> Error CRS025 / 400 (Bad Request)
  • Se ha superado el aforo máximo permitido en la convocatoria --> Error CRS043 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los usuarios han sido añadidos--> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Añadir estudiantes a un curso (v2)

Método: POST

URL:

  • Añadir por id:
    • /admin/rest/administration/api/courses/id/{id}/students?action={action}
  • Añadir por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/students?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/students?action=addByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (añadir usando ids de usuario o ids externos) (String,obligatorio)
    • Valores permitidos
      • addByIds
      • addByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún usuario haya dado error)

  • status: KO
  • ids / external ids: mapa de ids o external ids que han dado error con su código correspondiente:
    • CRS053: Alumno no encontrado.
    • CRS054: Alumno con estado inválido(debe estar activo).
    • CRS055: Alumno eliminado.
    • CRS056: Alumno ya inscrito.
  • Ejemplo de json devuelto: {"ids":{"1":"CRS056","2":"CRS056","3":"CRS053","8060":"CRS054"},"status":"KO"}

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No se puede añadir estudiantes al curso --> Error CRS025 / 400 (Bad Request)
  • Se ha superado el aforo máximo permitido en la convocatoria --> Error CRS043 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los usuarios han sido añadidos--> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Aceptar solicitudes de inscripción a un curso

Método: POST

URL:

  • Aceptar por id:
    • /admin/rest/administration/api/courses/id/{id}/requests?action={action}
  • Aceptar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/requests?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/requests?action=acceptByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (aceptar usando ids de usuario o ids externos) (String,obligatorio)
    • Valores permitidos
      • acceptByIds
      • acceptByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún usuario haya dado error)

  • status: KO
  • ids / external ids: mapa de ids o external ids que han dado error con su código correspondiente:
    • CRS053: Alumno no encontrado.
    • CRS054: Alumno con estado inválido(debe estar activo).
    • CRS055: Alumno eliminado.
    • CRS056: Alumno ya inscrito.
    • CRS057: Solicitud de inscripción no encontrada.
  • Ejemplo de json devuelto: {"ids":{"1":"CRS056","2":"CRS056","3":"CRS053","8060":"CRS054"},"status":"KO"}

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "acceptByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No se puede añadir estudiantes al curso --> Error CRS025 / 400 (Bad Request)
  • Se ha superado el aforo máximo permitido en la convocatoria --> Error CRS043 / 400 (Bad Request)
  • No existe el curso --> Error 404 (Not Found)
  • Ejecución OK y todos los usuarios han sido añadidos--> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Rechazar solicitudes de inscripción a un curso

Método: POST

URL:

  • Rechazar por id:
    • /admin/rest/administration/api/courses/id/{id}/requests?action={action}
  • Rechazar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/requests?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/requests?action=rejectByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (rechazar usando ids de usuario o ids externos) (String,obligatorio)
    • Valores permitidos
      • rejectByIds
      • rejectByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún usuario haya dado error)

  • status: KO
  • ids / external ids: mapa de ids o external ids que han dado error con su código correspondiente:
    • CRS053: Alumno no encontrado.
    • CRS054: Alumno con estado inválido(debe estar activo).
    • CRS055: Alumno eliminado.
    • CRS056: Alumno ya inscrito.
    • CRS057: Solicitud de inscripción no encontrada.
  • Ejemplo de json devuelto: {"ids":{"1":"CRS056","2":"CRS056","3":"CRS053","8060":"CRS054"},"status":"KO"}

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "rejectByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 404 (Not Found)
  • Ejecución OK y todos los usuarios han sido añadidos--> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Obtener estudiantes de un curso con paginado

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/students
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/students
  • Obtener estudiantes con paginación:
    • /admin/rest/administration/api/courses/id/{id}/students?startIndex={startIndex}&count={count}
    • /admin/rest/administration/api/courses/externalid/{external_id}/students?startIndex={startIndex}&count={count}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:https://demo.central-lms.com/admin/rest/administration/api/courses/id/345/students?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)

Campos devueltos en el Json

Listado de usuarios estudiantes, cada usuario consta de los siguientes campos:

  • id= Identificador
  • external_id= Id externo
  • username= Nombre de usuario

Validaciones

  • Índices erróneos --> Error 416 (Requested Range Not Satisfiable) Usando paginación, ambos índices deben tener un valor
  • Si el curso no existe --> Error 404 (Not Found)
  • No hay usuarios --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK
    • Si no hay paginación --> 200 (OK) + JSON
    • Si hay paginación --> 206 (Partial Content) + JSON


Obtener histórico de inscripciones

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/enrolmenthistory
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/enrolmenthistory


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:https://demo.central-lms.com/admin/rest/administration/api/courses/id/345/enrolmenthistory

BODY - application/x-www-form-urlencoded
date=12456897000

Parámetros

  • date= Fecha en milisegundos a partir de la cual se busca en el histórico (String, opcional)

Campos devueltos en el Json

Listado de inscripciones, cada inscripción consta de los siguientes campos:

  • id= Identificador del histórico
  • learningContainerId= Identificador del curso
  • learningContainerExternalId= Identificador externo del curso
  • learningContainerName= Nombre del curso
  • operationType= Tipo de operación
  • studentId= Identificador del estudiante
  • studentExternalId= Identificador externo del estudiante
  • studentUsername= Nombre de usuario del estudiante
  • creationInMillis= Fecha y hora en milisegundos en la que se realizó la operación

Validaciones

  • No hay inscripciones --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Obtener evaluación de estudiante (v1)

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/evaluations
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations
  • Obtener estudiantes con paginación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?startIndex={startIndex}&count{count}
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations?startIndex={startIndex}&count{count}
  • Obtener estudiantes por fecha de última actuación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?date={timeInMillis}
    • /admin/rest/administration/api/courses/externalid/{exetrnal_id}/evaluations?date={timeInMillis}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Parámetros

  • date= Fecha en milisegundos a partir de la cual se busca la última fecha de actualización de la evaluación de cada alumno (String, opcional)
  • startindex= índice inicial para la paginación (Integer, opcional)
  • count= total de elementos a recuperar para la paginación (Integer, opcional)
  • status= Estado de la evaluación. Valores posibles: IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED (String opcional)
  • studentId= Id del alumno (Integer opcional)
  • studentExternalId= External id del alumno (String opcional)
  • studentUsername= Nombre de usuario del alumno (String opcional)

Campos devueltos en el Json

Listado de evaluaciones de los alumnos del curso, cada evaluación consta de los siguientes campos:

  • student_id= Identificador del alumno.
  • external_id= Identificador externo del alumno.
  • username= nombre de usuario.
  • progress= porcentaje del progreso del alumno en el curso.
  • score= nota del alumno en el curso.
  • totaltime= tiempo dedicado al curso por el alumno en horas, minutos y segundos.
  • firstAccess= fecha del primer acceso del alumno al curso.
  • lastAccess= fecha del último acceso del alumno al curso.
  • status =Estado del alumno en el curso (IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED).

Validaciones

  • No hay evaluaciones --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Obtener evaluación de estudiante (v2)

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/evaluations
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations
  • Obtener estudiantes con paginación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?startIndex={startIndex}&count{count}
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations?startIndex={startIndex}&count{count}
  • Obtener estudiantes por fecha de última actuación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?date={timeInMillis}
    • /admin/rest/administration/api/courses/externalid/{exetrnal_id}/evaluations?date={timeInMillis}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Parámetros

  • date= Fecha en milisegundos a partir de la cual se busca la última fecha de actualización de la evaluación de cada alumno (String, opcional)
  • startindex= índice inicial para la paginación (Integer, opcional)
  • count= total de elementos a recuperar para la paginación (Integer, opcional)
  • status= Estado de la evaluación. Valores posibles: IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED (String opcional)
  • studentId= Id del alumno (Integer opcional)
  • studentExternalId= External id del alumno (String opcional)
  • studentUsername= Nombre de usuario del alumno (String opcional)

Campos devueltos en el Json

Listado de evaluaciones de los alumnos del curso, cada evaluación consta de los siguientes campos:

  • evaluation_id= Identificador de la evaluación.
  • student_id= Identificador del alumno.
  • external_id= Identificador externo del alumno.
  • username= nombre de usuario.
  • score= nota del alumno en el curso.
  • totaltime= tiempo dedicado al curso por el alumno en horas, minutos y segundos.
  • firstAccess= fecha del primer acceso del alumno al curso.
  • lastAccess= fecha del último acceso del alumno al curso.
  • status =Estado del alumno en el curso (IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED).
  • passedItems:Número de actividades aprobadas.

  • passedMandatoryItems:Número de actividades obligatorias aprobadas.

  • totalItems:Número total de actividades.
  • totalMandatoryItems:Número de actividades obligatorias.
  • enrolmentMotive= Motivo de inscripción
  • limitAccessDate= Fecha límite de acceso

Validaciones

  • No hay evaluaciones --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Obtener evaluación de estudiante (v3)

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/evaluations
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations
  • Obtener estudiantes con paginación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?startIndex={startIndex}&count{count}
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations?startIndex={startIndex}&count{count}
  • Obtener estudiantes por fecha de última actuación:
    • /admin/rest/administration/api/courses/id/{id}/evaluations?date={timeInMillis}
    • /admin/rest/administration/api/courses/externalid/{exetrnal_id}/evaluations?date={timeInMillis}

Recuerda que por motivos de seguridad, elexternal_idno puede contener los caracteres\ni/

Ejemplo:

Parámetros

  • date = Fecha en milisegundos a partir de la cual se busca la última fecha de actualización de la evaluación de cada alumno (String, opcional)
  • startindex = índice inicial para la paginación (Integer, opcional)
  • count = total de elementos a recuperar para la paginación (Integer, opcional)
  • status = Estado de la evaluación. Valores posibles: IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED (String opcional)
  • studentId = Id del alumno (Integer opcional)
  • studentExternalId = External id del alumno (String opcional)
  • studentUsername = Nombre de usuario del alumno (String opcional)

Campos devueltos en el Json

Listado de evaluaciones de los alumnos del curso, cada evaluación consta de los siguientes campos:

  • evaluation_id = Identificador de la evaluación.
  • student_id = Identificador del alumno.
  • external_id = Identificador externo del alumno.
  • username = nombre de usuario.
  • score = nota del alumno en el curso.
  • totaltime = tiempo dedicado al curso por el alumno en horas, minutos y segundos.
  • firstAccess = fecha del primer acceso del alumno al curso.
  • lastAccess = fecha del último acceso del alumno al curso.
  • status = Estado del alumno en el curso (IN_PROGRESS, PASSED, NOT_PASSED, NOT_STARTED, VALIDATED).
  • passedDate = Fecha de superación del curso.
  • passedItems: Número de actividades aprobadas.

  • passedMandatoryItems: Número de actividades obligatorias aprobadas.

  • totalItems: Número total de actividades.
  • totalMandatoryItems: Número de actividades obligatorias.
  • enrolmentMotive = Motivo de inscripción
  • limitAccessDate = Fecha límite de acceso

Validaciones

  • No hay evaluaciones --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Modificar evaluación de curso (v2)


Se consumirá sólo un tipo de recurso:

  • Content-Type: application/json

Método: PUT

URL:

  • Modificar por id:
    • /admin/rest/administration/api/courses/id/{id}/evaluations/{evaluation_id}
  • Modificar por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations/{evaluation_id}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030/evaluations/4543

BODY - application/json
{
"evaluation_id":4543,
"student_id":2221,
"external_id":"ff80818166be7eac0166cbc684d802ce",
"username":"login279",
"score":15,
"totaltime":"00:20:00",
"firstAccess":"2019-12-19 23:59:59",
"lastAccess":"2019-12-19 23:59:59",
"status":"IN_PROGRESS",
"passedItems":1,
"passedMandatoryItems":0,
"totalItems":1,
"totalMandatoryItems":1,
"enrolmentMotive":"aaaaaa",
"limitAccessDate":"2019-12-19 23:59:59"
}

Parámetros

Se le pueden pasar todos estos parámetros, aunque los indicados no se podrán modificar (simplemente se ignorarán). Por comodidad se mantienen, ya que son todos los campos que devuelve la petición GET.

  • evaluation_id =Id de la evaluación (NO EDITABLE)

  • student_id= Id del alumno (NO EDITABLE)

  • external_id= Id externo del alumno (NO EDITABLE)

  • username= Nombre de usuario (NO EDITABLE)

  • score= Puntuación (Número, opcional) Valores permitidos: Número entre 0 y 100

  • totaltime= tiempo total (String, opcional) Formato permitido HH:mm:ss

  • firstAccess= Fecha de primer acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

  • lastAccess= Fecha de último acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss
  • status= Estado de la evaluación (String, opcional)
    • IN_PROGRESS
    • PASSED
    • NOT_PASSED
    • NOT_STARTED
    • VALIDATED
  • passedItems= Número de actividades superadas (Integer,opcional)
  • passedMandatoryItems= Número de actividades obligatorias superadas (Integer, opcional)

  • totalItems= Número de actividades (NO EDITABLE)
  • totalMandatoryItems= Número de actividades obligatorias (NO EDITABLE)
  • enrolmentMotive= Motivo de inscripción (String, opcional)
  • limitAccessDate= Fecha límite de acceso del alumno (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

Validaciones

  • El formato de las fechas es incorrecto --> Error ERR008 / 400 (Bad Request)
  • El formato de la hora es incorrecto --> Error ERR009 / 400 (Bad Request)
  • El estado del alumno es incorrecto --> Error CEV001 / 400 (Bad Request)
  • La puntuación es incorrecta --> Error CEV002 / 400 (Bad Request)
  • La fecha límite de acceso no está permitida --> Error CEV003 / 400 (Bad Request)
  • No se permite modificar la evaluación porque el curso está finalizado --> Error CEV004 / 400 (Bad Request)
  • No existe una evaluación con ese id --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Modificar evaluación de curso (v3)

Se consumirá sólo un tipo de recurso:

  • Content-Type: application/json

Método: PUT

URL:

  • Modificar por id:
    • /admin/rest/administration/api/courses/id/{id}/evaluations/{evaluation_id}
  • Modificar por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/evaluations/{evaluation_id}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030/evaluations/4543

BODY - application/json

{
"evaluation_id":4543,
"student_id":2221,
"external_id":"ff80818166be7eac0166cbc684d802ce",
"username":"login279",
"score":15,
"totaltime":"00:20:00",
"firstAccess":"2019-12-19 23:59:59",
"lastAccess":"2019-12-19 23:59:59",
"status":"IN_PROGRESS",
"passedDate": "2019-12-19 23:59:59",
"passedItems":1,
"passedMandatoryItems":0,
"totalItems":1,
"totalMandatoryItems":1,
"enrolmentMotive":"aaaaaa",
"limitAccessDate":"2019-12-19 23:59:59"
}

Parámetros

Se le pueden pasar todos estos parámetros, aunque los indicados no se podrán modificar (simplemente se ignorarán). Por comodidad se mantienen, ya que son todos los campos que devuelve la petición GET.

  • evaluation_id = Id de la evaluación (NO EDITABLE)

  • student_id = Id del alumno (NO EDITABLE)

  • external_id = Id externo del alumno (NO EDITABLE)

  • username = Nombre de usuario (NO EDITABLE)

  • score = Puntuación (Número, opcional) Valores permitidos: Número entre 0 y 100

  • totaltime = tiempo total (String, opcional) Formato permitido HH:mm:ss

  • firstAccess = Fecha de primer acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

  • lastAccess = Fecha de último acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss
  • status = Estado de la evaluación (String, opcional)
    • IN_PROGRESS
    • PASSED
    • NOT_PASSED
    • NOT_STARTED
    • VALIDATED
  • passedDate = Fecha de superación del curso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss Si no se especifica y el nuevo estado es VALIDATED o PASSED, se establecerá el instante en que se actualiza
  • passedItems = Número de actividades superadas (Integer, opcional)
  • passedMandatoryItems = Número de actividades obligatorias superadas (Integer, opcional)

  • totalItems = Número de actividades (NO EDITABLE)
  • totalMandatoryItems = Número de actividades obligatorias (NO EDITABLE)
  • enrolmentMotive = Motivo de inscripción (String, opcional)
  • limitAccessDate = Fecha límite de acceso del alumno (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

Validaciones

  • El formato de las fechas es incorrecto --> Error ERR008 / 400 (Bad Request)
  • El formato de la hora es incorrecto --> Error ERR009 / 400 (Bad Request)
  • El estado del alumno es incorrecto --> Error CEV001 / 400 (Bad Request)
  • La puntuación es incorrecta --> Error CEV002 / 400 (Bad Request)
  • La fecha límite de acceso no está permitida --> Error CEV003 / 400 (Bad Request)
  • No se permite modificar la evaluación porque el curso está finalizado --> Error CEV004 / 400 (Bad Request)
  • No existe una evaluación con ese id --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Aplicar diff de evaluaciones (v2)


Se consumirán el tipo de recurso:

Content-Type: application/json

Método: PATCH

Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"

URL:

Modificar por id:

  • /admin/rest/administration/api/courses/id/{id}/evaluations/{evaluation_id}

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030/evaluations/4543

BODY - application/json
[
{ "op": "add", "path": "/limitAccessDate", "value": "2019-12-19 23:59:59" }
]

Operaciones permitidas

Se permiten las operaciones delRFC-6902. En path se pondría el parámetro a operar.

[{"op":"test","path":"/a/b/c","value":"foo"},
{
"op":"remove","path":"/a/b/c"},
{
"op":"add","path":"/a/b/c","value":["foo","bar"]},
{"op":"replace","path":"/a/b/c","value":42},
{"op":"move","from":"/a/b/c","path":"/a/b/d"},
{
"op":"copy","from":"/a/b/d","path":"/a/b/e"}]

Parámetros modificables ("path" y "value" posibles)

  • score= Puntuación (Número, opcional) Valores permitidos: Número entre 0 y 100

  • totaltime= tiempo total (String, opcional) Formato permitido HH:mm:ss

  • firstAccess= Fecha de primer acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

  • lastAccess= Fecha de último acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss
  • status= Estado de la evaluación (String, opcional)
    • IN_PROGRESS
    • PASSED
    • NOT_PASSED
    • NOT_STARTED
    • VALIDATED
  • passedItems= Número de actividades superadas (Integer,opcional)
  • passedMandatoryItems= Número de actividades obligatorias superadas (Integer, opcional)

  • enrolmentMotive= Motivo de inscripción (String, opcional)
  • limitAccessDate= Fecha límite de acceso del alumno (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss


Validaciones

  • El formato de las fechas es incorrecto --> Error ERR008 / 400 (Bad Request)
  • El formato de la hora es incorrecto --> Error ERR009 / 400 (Bad Request)
  • El estado del alumno es incorrecto --> Error CEV001 / 400 (Bad Request)
  • La puntuación es incorrecta --> Error CEV002 / 400 (Bad Request)
  • La fecha límite de acceso no está permitida --> Error CEV003 / 400 (Bad Request)
  • No se permite modificar la evaluación porque el curso está finalizado --> Error CEV004 / 400 (Bad Request)
  • No existe una evaluación con ese id --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Aplicar diff de evaluaciones (v3)

Se consumirán el tipo de recurso:

Content-Type: application/json

Método: PATCH

Se podría usar un POST incluyendo la cabecera "X-HTTP-Method-Override: PATCH"

URL:

Modificar por id:

  • /admin/rest/administration/api/courses/id/{id}/evaluations/{evaluation_id}

Recuerda que por motivos de seguridad, elexternal_idno puede contener los caracteres\ni/

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/2030/ evaluations/4543

BODY - application/json

[
{ "op": "add", "path": "/limitAccessDate", "value": "2019-12-19 23:59:59" }
]

Operaciones permitidas

Se permiten las operaciones del RFC-6902. En path se pondría el parámetro a operar.

 [{ "op": "test", "path": "/a/b/c", "value": "foo" }, 
{
 "op": "remove", "path": "/a/b/c" }, 
{
 "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" }, 
{
 "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }]

Parámetros modificables ("path" y "value" posibles)

  • score = Puntuación (Número, opcional) Valores permitidos: Número entre 0 y 100

  • totaltime = tiempo total (String, opcional) Formato permitido HH:mm:ss

  • firstAccess = Fecha de primer acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

  • lastAccess = Fecha de último acceso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss
  • status = Estado de la evaluación (String, opcional)
    • IN_PROGRESS
    • PASSED
    • NOT_PASSED
    • NOT_STARTED
    • VALIDATED
  • passedDate = Fecha de superación del curso (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss Si no se especifica y el nuevo estado es VALIDATED o PASSED, se establecerá el instante en que se actualiza
  • passedItems = Número de actividades superadas (Integer, opcional)
  • passedMandatoryItems = Número de actividades obligatorias superadas (Integer, opcional)

  • enrolmentMotive = Motivo de inscripción (String, opcional)
  • limitAccessDate = Fecha límite de acceso del alumno (String, opcional) Formato permitido YYYY-MM-DD HH:mm:ss

Validaciones

  • El formato de las fechas es incorrecto --> Error ERR008 / 400 (Bad Request)
  • El formato de la hora es incorrecto --> Error ERR009 / 400 (Bad Request)
  • El estado del alumno es incorrecto --> Error CEV001 / 400 (Bad Request)
  • La puntuación es incorrecta --> Error CEV002 / 400 (Bad Request)
  • La fecha límite de acceso no está permitida --> Error CEV003 / 400 (Bad Request)
  • No se permite modificar la evaluación porque el curso está finalizado --> Error CEV004 / 400 (Bad Request)
  • No existe una evaluación con ese id --> Error 404 (Not Found)
  • Todo OK --> 200 (OK)

Eliminar estudiantes de un curso

Método: DELETE

URL:

  • Eliminar por id:
    • /admin/rest/administration/api/courses/id/{id}/students?action={action}
  • Eliminar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/students?action{action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/students?action=removeByIds

BODY - application/x-www-form-urlencoded
id=51476&id=654165&id=6566

Parámetros

  • action= acción que se quiere realizar (eliminar usando ids de usuarios o ids externos) (String,obligatorio)
    • Valores permitidos
      • removeByIds
      • removeByExternalids
  • id (lista)= cada uno de los identificadores o identificadores externos (String,obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No se pueden eliminar estudiantes del curso --> Error CRS026 / 400 (Bad Request)
  • El curso está bloqueado --> Error CRS027 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los estudiantes han sido eliminados -> 200 (OK)
  • Ejecución OK y algún estudiante no ha podido ser eliminado --> 200 (OK) + JSON

Añadir destinatarios a un curso

Método: POST

URL:

  • Añadir por id:
    • /admin/rest/administration/api/courses/id/{id}/recipients?action={action}
  • Añadir por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/recipients?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/recipients?action=addByIds

BODY - application/x-www-form-urlencoded
collective[0]=2171&collective[1]=2022&collective[4]=2103

Parámetros

  • action= acción que se quiere realizar (añadir usando ids de usuario o ids externos) (String,obligatorio)
    • Valores permitidos
      • addByIds
      • addByExternalids
  • collective[0] (lista)= Identificador de colectivo destinatarios con los valores de los identificadores o identificadores externos de cada grupo a añadir (String,obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "addByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • El identificador colectivo debe tener un valor numérico entre 0 y 4 --> Error CRS028 / 400 (Bad Request)
  • Ejecución OK y todos los usuarios han sido añadidos--> 200 (OK)
  • Ejecución OK y algún usuario no ha podido ser añadido --> 200 (OK) + JSON

Obtener destinatarios de un curso sin paginar

Método: GET

URL:

  • Obtener por id:
    • /admin/rest/administration/api/courses/id/{id}/recipients
  • Obtener por external id:
    • /admin/rest/administration/api/courses/externalid/{external_id}/recipients


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:https://demo.central-lms.com/admin/rest/administration/api/courses/id/345/recipients

Campos devueltos en el Json

Listado de colectivo de grupos, cada colectivo consta de los siguientes campos:

  • collective= Número del colectivo
  • groups= Lista de grupos
    • id= Identificador
    • external_id= Id externo
    • parentId= Id del grupo padre
    • name =Nombre de grupo
    • description =Descripción del grupo
    • extendedFields= Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValue
      • extendedFieldName= Nombre del campo extendido
      • extendedFieldValue= Valor del campo extendido

Validaciones

  • Si el curso no existe --> Error 404 (Not Found)
  • No hay grupos --> Error 204 (No Content)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON

Eliminar destinatarios de un curso

Método: DELETE

URL:

  • Eliminar por id:
    • /admin/rest/administration/api/courses/id/{id}/recipients?action={action}
  • Eliminar por id externo:
    • /admin/rest/administration/api/courses/externalid/{external_id}/recipients?action={action}


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/5487/recipients?action=removeByIds

BODY - application/x-www-form-urlencoded
collective[0]=2171&collective[1]=2022&collective[4]=2103

Parámetros

  • action= acción que se quiere realizar (eliminar usando ids de grupos o ids externos) (String,obligatorio)
    • Valores permitidos
      • removeByIds
      • removeByExternalids
  • collective[0] (lista)= Identificador de colectivo de destinatarios con los los identificadores o identificadores externos de cada grupo a eliminar (String,obligatorio)

Campos devueltos en el Json (en caso de que algún grupo haya dado error)

  • status: KO
  • ids / external ids: listado de ids o external ids que han dado error

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir--> Error ERR001 / 400 (Bad Request)
  • Acción no válida (no se comprueban mayúsculas/minúsculas) --> Error ERR002 / 400 (Bad Request)
  • Se ha escogido la acción "removeByIds" y algún id no es numérico --> Error ERR003 / 400 (Bad Request)
  • No existe el curso --> Error 400 (Not Found)
  • Ejecución OK y todos los destinatarios han sido eliminados -> 200 (OK)
  • Ejecución OK y algún destinatario no ha podido ser eliminado --> 200 (OK) + JSON

Clonar curso (v1)


Esta versión lleva la entrada con Content-Type: application/x-www-form-urlencoded, se recomienda el uso de la nueva versión, que consume json.

Método: POST

URL: /admin/rest/administration/api/courses

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses

BODY - application/x-www-form-urlencoded (example 1)
external_id=excourse1&name=Curso de diseño gráfico&clonedFromId=1


BODY - application/x-www-form-urlencoded (example 2)
external_id=excourse1&name=Curso de diseño gráfico&clonedFromExternalId=excourseToClone

Parámetros

  • external_id= Id externo (String) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres\ni/
  • name= Nombre (String)
  • clonedFromId= Identificador de curso que se clona (Long)
  • clonedFromExternalId= Id. externo de curso que se clona (String)  (se deja de usar en la versión JSON)

Debe venir informado el parámetro de clonedFromId o el parámetro clonedFromExternalId

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • Id. de curso inexistente --> Error ERR004 / 404 (Not Found)
  • Id. externo de curso inexistente --> Error ERR005 / 404 (Not Found)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Clonar curso (v2)


Se consumirán dos tipos de recursos application/x-www-form-urlencoded y application/json. Se recomienda usar la versión de json.

En la versión json no se puede clonar por externalId. Hay que realizar una búsqueda por externalId de un curso y con el id frealizar una clonación por id.

Método: POST

URL: /admin/rest/administration/api/courses

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses

BODY - application/x-www-form-urlencoded (example 1) (deprecated)
external_id=excourse1&name=Curso de diseño gráfico&clonedFromId=1


BODY - application/x-www-form-urlencoded (example 2) (deprecated)
external_id=excourse1&name=Curso de diseño gráfico&clonedFromExternalId=excourseToClone


BODY - application/json
 {
  "external_id": "excourse1",
  "name": "Curso de diseño gráfico",
  "clonedFromId": 1
}

Parámetros

  • external_id= Id externo (String) (warning) Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres\ni/
  • name= Nombre (String)
  • clonedFromId= Identificador de curso que se clona (Long)
  • clonedFromExternalId= Id. externo de curso que se clona (String) (se deja de usar en la versión JSON)


Debe venir informado el parámetro de clonedFromId o el parámetro clonedFromExternalId

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • External id duplicado --> Error ERR006 / 400 (Bad Request)
  • Id. de curso inexistente --> Error ERR004 / 404 (Not Found)
  • Id. externo de curso inexistente --> Error ERR005 / 404 (Not Found)

Respuesta OK

  • 201 (Created) + cabecera 'Location' con el link al recurso creado

Crear mensaje de bienvenida a curso

Método: POST

URL: /admin/rest/administration/api/courses/welcomeMessage

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/welcomeMessage

BODY - application/json
 {
	"id": 72307,
	"studentId": 1,
	"showMessage": "true",
	"message": "Mi mensaje de bienvenida"
}

Parámetros

  • id = Identificador de curso (Longobligatorio
  • studentId= Identificador del estudiante (Longobligatorio)
  • showMessage= Indica si se le debe de mostrar el mensaje al usuario (boolean)
  • message= Mensaje que se le va a mostrar al usuario (Stringobligatorio)

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • Id. de curso inexistente --> Error MWM002/ 404 (Not Found)
  • Id. de persona inexistente --> Error MWM003/ 404 (Not Found)
  • Mensaje de bienvenida duplicado --> Error MWM001/ 400 (Bad Request)

Respuesta OK

  • 200 (Created) 

Actualizar mensaje de bienvenida a curso

Método: PUT

URL: /admin/rest/administration/api/courses/id/{id}/welcomeMessage/studentId/{studentId}

Ejemplo: https://demo.central-lms.com/admin/rest/administration/api/courses/id/1/welcomeMessage/studentId/1

BODY - application/json
 {
	"showMessage": "true",
	"message": "Mi mensaje de bienvenida"
}

Parámetros

  • showMessage= Indica si se le debe de mostrar el mensaje al usuario (boolean)
  • message= Mensaje que se le va a mostrar al usuario (String, obligatorio)

Validaciones

  • Lista de parámetros vacía o algún campo obligatorio sin cubrir --> Error ERR001 / 400 (Bad Request)
  • Id. de curso inexistente --> Error MWM002/ 404 (Not Found)
  • Id. de persona inexistente --> Error MWM003/ 404 (Not Found)
  • No existe un mensaje de bienvenida para actualizar --> Error MWM004/ 404 (Not Found)

Respuesta OK

  • 200 (OK)

Obtener acciones formativas (v1, v2, v3)

Método: GET

URL: 

  • Obtener por id: 
    • /admin/rest/administration/api/courses/id/{id}/sessions
  • Obtener por external id: 
    • /admin/rest/administration/api/courses/externalid/{externalid}/sessions


Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /

Ejemplo:

Campos devueltos en el Json

Listado de acciones formativas, cada acción formativa consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • sessionType= Tipo de actividad asociado a la acción formativa. Valores posibles: classroom, externalLink, externalwebconference, file, practicalCase, performanceReview, scorm, video, webconference.
  • name= Nombre de la acción formativa
  • startDate= Fecha de inicio de acción formativa (UTC)

  • endDate= Fecha de fin de acción formativa (UTC)

  • capacity= Capacidad de alumnos

  • estimateDuration= Duración estimada

  • confirmedValor true/false. Indica si la acción está confirmada

  • description= Descripción de la acción formativa

  • objectives= Objetivos de la acción formativa

  • comments= Comentarios de la acción formativa

  • status= Estado de la acción formativa.

  • moduleActivity= Objeto de relación de actividad y módulo
    • id= Identificador
    • moduleId = Identificador de módulo
    • activityId = Identificador de actividad

  • extendedFields=Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValues

Parámetros

  • startindex= índice inicial para la paginación (Integer, opcional)
  • count= total de elementos a recuperar para la paginación (Integer, opcional)
  • personId= filtra por el id de un alumno (Long, opcional)
  • personExternalId=filtra por el id externo de un alumno (String, opcional)
  • username= filtra por el nombre de usuario de un alumno (String, opcional)
  • activityId= filtra por el id de una actividad (Long, opcional)
  • moduleActivityId= filtra por el id de una actividad de curso (Long, opcional)

Validaciones

  • Id. de curso inexistente --> Error ERR004 / 404 (Not Found)
  • Id. externo de curso inexistente --> Error ERR005 / 404 (Not Found)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON
  • Todo OK sin contenido --> 204 (No content)
  • Si hay paginación --> 206 (Partial Content) + JSON

Obtener acciones formativas (v4)

Método: GET

URL: 

  • Obtener por id: 
    • /admin/rest/administration/api/courses/id/{id}/sessions
  • Obtener por external id: 
    • /admin/rest/administration/api/courses/externalid/{externalid}/sessions

Note

Recuerda que por motivos de seguridad, el external_id no puede contener los caracteres \ ni /


Ejemplo:

Campos devueltos en el Json

Listado de acciones formativas, cada acción formativa consta de los siguientes campos:

  • id = Identificador
  • external_id = Id externo
  • sessionType = Tipo de actividad asociado a la acción formativa. Valores posibles: classroom, externalLink, externalwebconference, file, practicalCase, performanceReview, scorm, video, webconference.
  • name = Nombre de la acción formativa
  • startDate = Fecha de inicio de acción formativa (UTC)

  • endDate = Fecha de fin de acción formativa (UTC)

  • capacity = Capacidad de alumnos

  • estimateDuration = Duración estimada

  • confirmed = Valor true/false. Indica si la acción está confirmada

  • description = Descripción de la acción formativa

  • objectives = Objetivos de la acción formativa

  • comments = Comentarios de la acción formativa

  • status = Estado de la acción formativa.

  • moduleActivity = Objeto de relación de actividad y módulo
    • id = Identificador
    • moduleId = Identificador de módulo
    • activityId = Identificador de actividad

  • extendedFields = Campos extensibles en lista con clave extendedFieldName y valor extendedFieldValues
  • moderatorUrl = Url de acceso para el formador (* Solo para el caso de sessionType = externalwebconference) 
  • studentUrl = Url de acceso para el estudiante (* Solo para el caso de sessionType = externalwebconference) 
  • trainers = Formadores de la acción formativa (* Solo pasa el caso de sessionType = classroom o externalwebconference o practicalCase o webconference)
    • id = Identificador del formador
    • firstName = Nombre del formador
    • lastName = Apellidos del formador
    • username = Nombre de usuario del formador
    • email = Email del formador
  • rooms rooms = Salas vinculadas a la acción formativa (* Solo para el caso de sessionType = classroom) 
    • id = Identificador de la sala 
    • name = Nombre de la sala
  • scorable = Acción formativa evaluable 
  • minScore = Nota mínima para superar 
  • maxScore = Nota máxima que se puede obtener 
  • scoreToPass = Nota de superación 
  • weightInModule = Peso dentro del curso (* Solo tendrá valor para el caso de evaluación por puntuación mínima) 
  • percentageWeightInModule = Porcentaje del peso dentro del curso (* Solo tendrá valor para el caso de evaluación por puntuación mínima) 

Parámetros

  • startindex = índice inicial para la paginación (Integer, opcional)
  • count = total de elementos a recuperar para la paginación (Integer, opcional)
  • personId= filtra por el id de un alumno (Long, opcional)
  • personExternalId=filtra por el id externo de un alumno (String, opcional)
  • username= filtra por el nombre de usuario de un alumno (String, opcional)
  • activityId= filtra por el id de una actividad (Long, opcional)
  • moduleActivityId= filtra por el id de una actividad de curso (Long, opcional)

Validaciones

  • Id. de curso inexistente --> Error ERR004 / 404 (Not Found)
  • Id. externo de curso inexistente --> Error ERR005 / 404 (Not Found)
  • Error en la generación del Json --> Error 503 (Service Unavailable)
  • Todo OK --> 200 (OK) + JSON
  • Todo OK sin contenido --> 204 (No content)
  • Si hay paginación --> 206 (Partial Content) + JSON