Метод
POST /api/v1/clients/:clientId/bulkDataSyncTasks
Тело запроса
{
"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 во внешней системе должен относиться к тому же пользователю клиента, который обновляется.
- Не происходит попытка обновить юрлицо сотрудника, то есть внешний юрлица существующего сотрудника пользователя клиента должен быть равен переданному в данных синхронизации. (нельзя обновлять юрлицо)
Поиск документации