Actualizar un curso
Este endpoint permite actualizar la definición completa de un curso del catálogo, incluida su lista de entrenamientos.
PUT /api/v2/businesses/{businessId}/courses/{courseId}
El courseId es el identificador externo del curso que se quiere actualizar.
A continuación, se expone una explicación detallada de cada uno de los campos que pueden conformar el cuerpo de la petición, siendo algunos de ellos obligatorios para que esta se realice de manera exitosa.
|
Los campos obligatorios están marcados con un asterisco (*). |
Cuerpo de la petición
| Análisis del JSON |
|---|
Detalles
|
Ejemplo de la petición
Una vez realizado el análisis de los distintos campos, se muestra un ejemplo de la petición:
PUT /api/v2/businesses/BUSINESSID/courses/CRS-CAJ
{
"name": "Caja",
"description": "Medios de pago, operativa TPV, arqueo y devoluciones",
"abbreviation": "CAJ",
"color": "#F7C2E5",
"expiresAfter": "P1Y",
"requirementIds": [
"CRS-VAC"
],
"unlockCatalogLocationIds": [
"000001"
],
"trainings": [
{
"id": "TRN-CAJ-NOR",
"name": "Normativa de caja y medios de pago",
"day": 1,
"order": 1,
"duration": "PT1H",
"needsTrainer": false,
"needsValidation": false
},
{
"id": "TRN-CAJ-TPV",
"name": "Operativa TPV",
"day": 1,
"order": 2,
"duration": "PT4H",
"needsTrainer": true,
"needsValidation": false,
"coverCatalogLocationId": "000001"
},
{
"id": "TRN-CAJ-ARQ",
"name": "Arqueo y cuadre de caja",
"day": 2,
"order": 1,
"duration": "PT1H",
"needsTrainer": true,
"needsValidation": true
}
]
}
Si la petición es correcta, la respuesta será un 200 OK con el curso resultante, con la misma estructura que devuelve Obtener información de un curso.
Consideraciones
La petición sustituye toda la definición del curso: los campos que no se envíen quedan vacíos o con su valor por defecto. El id del cuerpo se ignora y el curso conserva el identificador indicado en la URL.
Los entrenamientos se identifican por su id:
-
Los entrenamientos con un
idexistente se actualizan. -
Los entrenamientos nuevos o sin
idse crean. -
Los entrenamientos existentes que no se incluyan en la petición se eliminan del curso.
Versionado del curso
Algunos cambios modifican la estructura del curso: añadir o eliminar entrenamientos, cambiar el day o el order de alguno de ellos o cambiar las tareas de unlockCatalogLocationIds.
Si el curso ya está asignado a algún empleado y el cambio es estructural, Orquest conserva la definición anterior para las asignaciones existentes y aplica la nueva definición solo a las asignaciones que se creen a partir de ese momento. El curso mantiene su identificador externo y la API devuelve siempre la versión vigente.
Los cursos que tienen este curso como requisito y las trayectorias formativas que lo incluyen pasan a utilizar automáticamente la versión vigente actualizada.
|
Un curso no puede ser requisito de sí mismo, ni directa ni indirectamente a través de otros cursos. |
Códigos de error
Además de los errores comunes, este endpoint puede devolver los siguientes códigos:
| Código | Mensaje | Descripción |
|---|---|---|
|
Course not found: <courseId> |
El |
Catalog location not found: <locationId> |
Alguna de las tareas indicadas en |
|
|
Name cannot be longer than 50 characters |
El campo |
Description cannot be longer than 500 characters |
El campo |
|
Abbreviation cannot be longer than 3 characters |
El campo |
|
For input string: <color> under radix 16 |
El campo |
|
training name is required |
Algún entrenamiento no tiene |
|
training day is required / training day must be greater than 0 |
Algún entrenamiento no tiene |
|
training order is required |
Algún entrenamiento no tiene |
|
training duration is required / Duration cannot be longer than 1 day |
Algún entrenamiento no tiene |
|
Duplicated training outerId in course trainings |
Hay varios entrenamientos con el mismo |
|
Requirement loop detected for course with id […] |
Los requisitos indicados generan un ciclo, por ejemplo, porque el curso es requisito de sí mismo. |
Enlaces de interés
¿Qué es un curso?
¿Qué es una trayectoria formativa?