Метод
POST /api/v1/clients/:clientId/bulkDataSyncTasks
Тело запроса
Markdown |
---|
``` { "type": "CLIENT_USERS", "data": [ { "gender":"MALE", "birthdate": "...", "lastName": "Васильев", "firstName": "Александр", "patronymic": "Олегович", "phone": "+79213338978", "email": "someEmail@mail.ru", "externalId": "113", "personalDocuments": [ { "type": "PASSPORT", "number": "1861 612512", ...(другие поля паспорта аналогично созданию, обновлению пользователя клиента) }, { "type": "SNILS", "number": "129-935-362 99" }, { "type": "INN", "number": "963527372740" } ], "userExternalIds": [ { "systemType": "externalSystem", "value": "externalId1" }, ... ] "employees": [ { "externalId": "1131", "legalEntityExternalId": "11", "departmentExternalId": "11", "positionExternalId": "111", "tags": [ "На тачке", "Курьер" ], "roleIds": [ "df6cc959-a85b-4b62-a51e-0bbcf44ce203", ... ], "availableVacationDayCount": 19.995 }, ... ] }, ... ] } ``` |
Проверки при валидации
- Переданные данные соответствуют типу данных пользователя клиента
- Для каждого пользователя клиента задана фамилия
- Все ID пользователя клиента во внешней системе не равны null
- Для каждого пользователя клиента список внешних ID (userExternalIds) не содержит null, и каждый внешний ID пользователя имеет ID типа внешней системы и значение
- Заданный email и номер телефона имеют корректный формат
- Документы каждого пользователя клиента заданы и корректны
- Список документов человека задан и ни один из элементов списка не null
- У каждого документа задан тип
- Номер каждого документа задан корректно
- Паспорт задан
- СНИСЛ задан
- Данные паспорта заданы корректно
- Список сотрудников пользователя клиента задан корректно
- Список тегов сотрудника задан корректно
- ID юрлица во внешней системе задан
- Список ролей сотрудников пуст или не содержит пустых значений
- Каждый внешний ID модели в данных для синхронизации уникален
При синхронизации определяется, существует ли пользователь клиента с заданным внешним ID в клиенте задачи. Если да, то просходит операция создания пользователя клиента и его сотрудников. Иначе - обновление пользователя клиента и обновление/создание его сотрудников.
Проверки при создании
- По заданным значениям типов внешних систем существуют типы внешних систем.
- Для заданных типов внешних систем еще не существуют пользователи с переданными ID
- Заданные логины (email и телефон) пользователя не заняты в системе
- Заданные документы человека уникальны в системе
- Данные сотрудников заданы корректно для создания (см.ниже подробнее)
Проверки при обновлении
- Заданные для обновления пользователя клиента логины пользователя не заняты в системе или уже принадлежат обновляемому пользователю
- Переданные документы с таким типом и номером не существуют в системе или уже принадлежат обновляемому пользователю
- По заданным значениям типов внешних систем существуют типы внешних систем
- Для заданных типов внешних систем еще не существуют пользователи с переданными ID или существующие пользователи уже относятся к обновляемому пользователю клиента
- Данные сотрудников заданы корректно для создания (если не существовал ранее) или обновления (если уже существовал) (см.ниже подробнее)
Проверки корректности данных сотрудника при синхронизации
Общие проверки корректности данных сотрудника
- По заданному ID юрлица во внешней системе существует юрлицо в клиенте задачи.
- По заданному ID отдела клиента во внешней системе существует отдел клиента в клиенте задачи. (если задан)
- По заданному ID должности сотрудника во внешней системе существует должность сотрудника в клиенте задачи. (если задан)
- По заданному списку ID ролей сотрудника существуют все роли сотрудника. (если задан)
Проверки корректности данных сотрудника для создания
- Сотрудник с заданным ID во внешней системе не существует в юрлице с заданным ID во внешней системе (то есть внешний ID сотрудника еще не занят в заданном юрлице).
Проверки корректности данных сотрудника для обновления
- Сотрудник с заданным ID во внешней системе должен относиться к тому же пользователю клиента, который обновляется.
- Не происходит попытка обновить юрлицо сотрудника, то есть внешний юрлица существующего сотрудника пользователя клиента должен быть равен переданному в данных синхронизации. (нельзя обновлять юрлицо)
Поиск документации
Livesearch | ||||
---|---|---|---|---|
|