## Отправка цепочки согласований ### Основные моменты 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": "Ошибка в процессе обработки" } ```