## Отправка цепочки согласований

### Основные моменты

1. URI для запроса
	1. Dev `https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval`
	2. Prod `https://crm.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval`
2. Header для запроса `X-Elma-Service`
3. Значение Header должно храниться в системе ELMA и быть зашифрованным (для dev и prod стендов разные значения). Будут переданы позднее
4. Перед выполнением запроса необходимо расшифровать значение Header и добавить его в запрос
5. В поле `chain_of_approval` отправляются `email` по порядку, исходя из цепочки согласований
### Примеры

```
curl --location 'https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/CreateChainOfApproval' \
--header 'X-Elma-Service: 123' \
--header 'Content-Type: application/json' \
--data '{
    "id_crm": "123-123",
    "chain_of_approval": "test1@mail.com"
}'
```

### Специальные условия

1. По матрице согласования нет подходящих условий
   - Согласование происходит автоматически в системе ELMA
   - ELMA отправляет запрос в формате
   ```json
    {
	    "id_crm": "035e0f7b-18d2-4f24-87d8-59f107110a01",
	    "chain_of_approval": "Согласовано"
	}
     ```
   - BPMSoft при получении такого ответа автоматически согласовывает условие

### Примеры ответов

Успешный ответ
```json
{
    "status": 200,
    "error_message": ""
}
```

Отсутствует заголовок авторизации или он неверный
```json
{
    "status": 403,
    "error_message": "Выполнение запрещено. Проверьте все необходимые данные"
}
```

Пустое тело
```json
{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}
```

Отсутствует поле `id_crm` или его значение пустое
```json
{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}
```

Отсутствует поле `chain_of_approval` или его значение пустое
```json
{
    "status": 400,
    "error_message": "Значение поля chain_of_approval не может быть пустым"
}
```

Согласование с Id из поля `id_crm` не найдено в BPMSoft
```json
{
    "status": 400,
    "error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
}
```

Контакт с email из поля `chain_of_approval` не найден в BPMSoft
```json
{
    "status": 400,
    "error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
}
```

Внутренняя ошибка BPMSoft
```json
{
    "status": 500,
    "error_message": "Ошибка в процессе обработки"
}
```
## Отправка результата согласования

### Основные моменты

1. URI для запроса
	1. Dev `https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution`
	2. Prod `https://crm.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution`
2. Header для запроса `X-Elma-Service`
3. Значение Header должно храниться в системе ELMA и быть зашифрованным (для dev и prod стендов разные значения). Будут переданы позднее
4. Перед выполнением запроса необходимо расшифровать значение Header и добавить его в запрос
5. В поле `approver` отправляется `email` согласующего
6. В поле `resolution` отправляется строка, один из вариантов ("Согласовано" или "Отклонено")
### Примеры

```
curl --location 'https://crm-dev.itdev.adsw.io/ServiceModel/ElmaService.svc/ChangeApproverResolution' \
--header 'X-Elma-Service: 123' \
--header 'Content-Type: application/json' \
--data-raw '{
    "id_crm": "123-123",
    "approver": "test@mail.com",
    "resolution": "Согласовано"
}'
```

### 
### Примеры ответов

Успешный ответ
```json
{
    "status": 200,
    "error_message": ""
}
```

Отсутствует заголовок авторизации или он неверный
```json
{
    "status": 403,
    "error_message": "Выполнение запрещено. Проверьте все необходимые данные"
}
```

Пустое тело
```json
{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}
```

Отсутствует поле `id_crm` или его значение пустое
```json
{
    "status": 400,
    "error_message": "Значение поля id_crm не может быть пустым"
}
```

Отсутствует поле `approver` или его значение пустое
```json
{
    "status": 400,
    "error_message": "Значение поля approver не может быть пустым"
}
```

Отсутствует поле `resolution` или его значение пустое
```json
{
    "status": 400,
    "error_message": "Значение поля resolution не может быть пустым"
}
```

Согласование с Id из поля `id_crm` не найдено в BPMSoft
```json
{
    "status": 400,
    "error_message": "Согласование с Id {0} не найдено в системе BPMSoft. Проверьте корректность запроса"
}
```

Контакт с email из поля `approver` не найден в BPMSoft
```json
{
    "status": 400,
    "error_message": "Контакт с email {0} не найден в системе. Проверьте корректность запроса"
}
```

Внутренняя ошибка BPMSoft
```json
{
    "status": 500,
    "error_message": "Ошибка в процессе обработки"
}
```