You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Метод

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 во внешней системе должен относиться к тому же пользователю клиента, который обновляется.
  • Не происходит попытка обновить юрлицо сотрудника, то есть внешний юрлица существующего сотрудника пользователя клиента должен быть равен переданному в данных синхронизации. (нельзя обновлять юрлицо)


Поиск документации

  • No labels