# Documentación Matriz KSC
## Asignación de competencias (ksc_competences)
Recibe un objeto con los datos del Cpc al cual se le asignarán las competencias, junto
con el nivel de responsabilidad y las competencias a asignar (incluyendo ponderación).
### Request
`POST https://app.keyclouding.cl/api/ats/company/ks/#{id}/ksc_competences`
### Parámetros de la consulta
> URL:
```shell
"https://app.keyclouding.cl/api/ats/company/ks/#{id}/ksc_competences"
```
> Ejemplo de body a enviar en la request:
```json
{
"responsabilidad": "Alto",
"competencias": [
{
"nombre": "Autocontrol",
"area": "TRANSVERSAL",
"pond": 0.5,
"desarrollo": "Medio"
},
{
"nombre": "Accountability",
"area": "COM",
"pond": 0.5,
"desarrollo": "Medio"
}
]
}
```
Los parámetros deben ser enviados a través del body en formato JSON.
Parámetro | Carácter | Descripción
--------- | -------- | -----------
responsabilidad (string) | obligatorio | Nivel de responsabilidad del cargo.
competencias (array) | obligatorio | Lista que puede tener una o más competencias del KSC.
### Competencias
El array de competencias está compuesto por uno o más hashes con los parámetros de la competencia, estos son:
Parámetro | Carácter | Descripción
--------- | -------- | -----------
nombre (string) | obligatorio | Nombre de la competencia
area (string) | obligatorio | En caso de ser un KSC específico, este traerá el código al cual área corresponde, en caso contrario, este parámetro será TRANSVERSAL.
pond (float) | obligatorio | Ponderador que indica el peso que tiene la competencia en el KSC. Este valor debe ser mayor a 0 y menor o igual a 1. NOTA: Si un KSC tiene más de una competencia, la suma de todos los ponderadores debe ser exactamente 1; en caso de ser solo una competencia, el valor de pond debe ser 1.
desarrollo (string) | obligatorio | Nivel de desarrollo de la competencia.
### Respuesta JSON
> Si la asignación es satisfactoria:
```json
{
"messages": "Competences created successfully",
"is_success": true,
"data": [
{
"competence": "Autocontrol",
"created": true,
"homologacion": {}
},
{
"competence": "Accountability",
"created": true,
"homologacion": {}
}
]
}
```
La respuesta obtenida está en el siguiente formato:
Parámetro | Descripción
--------- | -----------
status (integer) | Resultado de la asignación. Los valores admitidos son 200 (OK), 401 (Unauthorized), 403 (Forbidden), 400 (Bad Request) ó 404 (Not Found).
is_success (boolean) | Indica si la request fue exitosa.
data (array) | Contiene la lista de las competencias con sus respectivos nombres y el estado de creación (boolean)
homologacion (hash) | Contiene la información para evaluar la competencia
### Manejo de errores
> Si se produce un error de autenticación:
```json
{
"messages": "Not authorized",
"is_success": false
}
```
> Si se produce un error de parametro en cpc_id:
```json
{
"messages": "Cpc not found",
"is_success": false
}
```
> Si se produce un error de parametro en responsabilidad:
```json
{
"messages": "Responsabilidad param is missing",
"is_success": false
}
```
> Si se produce un error de parametro en competencias:
```json
{
"messages": "Competencias param is missing",
"is_success": false
}
```
> Si se produce un error en la suma de ponderaciones (Debe ser 1 en total):
```json
{
"messages": "Total weight has to be 1",
"is_success": false
}
```