Перейти к основному содержимому

Подразделения

Информация о разделе

Страница содержит сценарии использования API для работы с реестром "Подразделения".

Общая информация

Сервис предназначенный для работы с реестром "Подразделения" направлен на управление внутренней структурой компании. Набор методов API, позволяет интегратору работать с подразделениями компании.

При работе с подразделениями доступны следующие действия:

  • Создать новое подразделение
  • Получить информацию о реестре подразделений
  • Получить подробную информацию о подразделении
  • Обновить информацию о подразделении

Создание нового подразделения

Для cоздания нового подразделения, необходимо вызвать метод [POST]/api/v1/abonents/{abonentId}/departments. При успешном выполнении операции метод создаст новое подразделение в организации и вернет его идентификатор.

Важно Данный метод доступен пользователям с ролями Администратор/Владелец.

В качестве входных параметров необходимо передавать:

  • идентификатор абонента,
  • наименование подразделения (уникальное значение в рамках выбранной организации),
  • (необязательно) краткое обозначение (код) подразделения,
  • (необязательно) КПП подразделения (уникальное значение в рамках выбранной организации),
  • идентификатор головного подразделения,
  • (необязательно) адрес подразделения.

При успешной инициализации запроса, проверяется валидность входных параметров. Если проверка входных параметров не пройдена, то сервер вернет ошибки с текстовым описанием причины в теле ответа (См. таблицу 1).

Таблица 1. Ошибки входных параметров

Описание ошибкиПричина
Пользователь {userId} не имеет доступа к абоненту {abonentId}Отказано в доступе: некорректно указан abonentId. Аккаунт пользователя не содержит абонента с указанным идентификатором
Некорректный формат данныхПереданы некорректные параметры запроса: один или несколько из указанных параметров не соответствуют их формату данных
Указанное головное подразделение не принадлежит выбранной организацииПереданы некорректные параметры запроса: указано несуществующее головное подразделение
Указан КПП, который уже используется в другом подразделенииПереданы некорректные параметры запроса: указано КПП, которое уже используется в рамках организации
Указанное значение наименования подразделения уже используется в другом подразделенииПереданы некорректные параметры запроса: указано наименование подразделения, которое уже используется в рамках организации

Таблица 1 - Ошибки входных параметров при создании нового подразделения

(Описание ошибок будет систематически дополняться)

Если все проверки успешно пройдены, то сервер вернет положительный ответ с HTTP-кодом 200 и идентификатор созданного подразделения.

Получение информации о реестре подразделений

Для получения информации о реестре подразделений, необходимо вызвать метод [GET]/api/v1/abonents/{abonentId}/departments. При успешном выполнении операции метод вернет список подразделений организации, в модели DepartmentShortDto.

Примечание: Данный метод предназначен для получения реестра подразделений рекурсивным ленивым способом:

  1. Инициализация:
    • При открытии страницы с реестром подразделений происходит загрузка данных первого и второго уровней (если есть) дерева подразделений (1 уровень = Головное подразделение).
  2. Отображение данных:
    • Страница с реестром подразделений отображает головное подразделение (1 уровень) с информацией о наличии у него дочерних подразделений (плюсик).
  3. Раскрытие подразделения первого уровня:
    • При пользовательском действии по раскрытию подразделения первого уровня, система отправляет запрос к API для получения информации о наличии дочерних подразделений у элементов второго уровня.
  4. API-запрос для загрузки данных:
    • Приложение отправляет запрос к API, указывая идентификатор подразделения второго уровня (либо массив идентификаторов).
    • API возвращает данные, включая информацию о наличии третьего уровня.
  5. Обновление модели данных:
    • Полученные данные добавляются к модели данных второго уровня.
  6. Обновление интерфейса:
    • Обновленные данные отображаются в интерфейсе приложения.
  7. Рекурсивная ленивая загрузка при необходимости:
    • Если пользователь решает раскрыть дочерние элементы второго уровня, процесс повторяется: приложение отправляет запрос для загрузки данных третьего уровня и так далее.

В качестве входных параметров необходимо передавать:

  • идентификатор абонента,
  • (необязательно) идентификатор подразделения (относительно, которого нужно вернуть список дочерних подразделений):
    • если не указан "идентификатор подразделения", то возвращается список относительно головного подразделения,
    • если заполнен параметр "идентификатор подразделения", то данный параметр "строка поиска" - не заполняется,
    • если заполнен параметр "строка поиска", то параметр "идентификатор подразделения" - не заполняется,
    • если заполнен параметр "строка поиска" + параметр "идентификатор подразделения", то поиск осуществляется по двум параметрам. Если в комбинации поиска, один из параметров не валиден, будет возвращена ошибка,
  • (необязательно) строка поиска (поиск осуществляется по наименованию подразделения):
    • могут присутствовать символы, цифры, буквы,
  • (необязательно) начальное смещение (указывается начальное значение списка),
  • (необязательно) количество возвращаемых подразделений (по умолчанию: 50).

При успешной инициализации запроса, проверяется валидность входных параметров. Если проверка входных параметров не пройдена, то сервер вернет ошибки с текстовым описанием причины в теле ответа (См. таблицу 2).

Таблица 2. Ошибки входных параметров

Описание ошибкиПричина
Пользователь {userId} не имеет доступа к абоненту {abonentId}Отказано в доступе: некорректно указан abonentId. Аккаунт пользователя не содержит абонента с указанным идентификатором
В указанной организации отсутствует запрашиваемое подразделениеПереданы некорректные параметры запроса: в указанной организации нет данных о запрашиваемом подразделении
Невалидные данные в запросеПереданы некорректные параметры запроса: один или несколько из указанных параметров не соответствуют их формату данных

Таблица 2 - Ошибки входных параметров при получении информации о реестре подразделений

(Описание ошибок будет систематически дополняться)

Если все проверки успешно пройдены, то сервер вернет положительный ответ с HTTP-кодом 200 и модель DepartmentShortDto, которая будет содержать список подразделений.

Получение подробной информации о подразделении

Для получения подробной информации о конкретном подразделении, необходимо вызвать метод [GET]/api/v1/abonents/{abonentId}/departments/{departmentId}. При успешном выполнении операции метод вернет информацию о конкретном подразделении организации, в модели DepartmentDto.

В качестве входных параметров необходимо передавать:

  • идентификатор абонента,
  • идентификатор подразделения.

При успешной инициализации запроса, проверяется валидность входных параметров. Если проверка входных параметров не пройдена, то сервер вернет ошибки с текстовым описанием причины в теле ответа (См. таблицу 3).

Таблица 3. Ошибки входных параметров

Описание ошибкиПричина
Пользователь {userId} не имеет доступа к абоненту {abonentId}Отказано в доступе: некорректно указан abonentId. Аккаунт пользователя не содержит абонента с указанным идентификатором
В указанной организации отсутствует запрашиваемое подразделениеПереданы некорректные параметры запроса: в указанной организации нет данных о запрашиваемом подразделении
Невалидные данные в запросеПереданы некорректные параметры запроса: один или несколько из указанных параметров не соответствуют их формату данных

Таблица 3 - Ошибки входных параметров при получении подробной информации о подразделении

(Описание ошибок будет систематически дополняться)

Если все проверки успешно пройдены, то сервер вернет положительный ответ с HTTP-кодом 200 и модель DepartmentDto, которая будет содержать детальную информацию по подразделению.

Обновление информации о подразделении

Для изменения информации о подразделении, необходимо вызвать метод [PUT]/api/v1/abonents/{abonentId}/departments/{departmentId}. При успешном выполнении операции метод вернет обновленные данные по подразделению, в модели DepartmentDto.

В качестве входных параметров необходимо передавать:

  • идентификатор абонента,
  • идентификатор подразделения,
  • наименование подразделения,
  • (необязательно) краткое обозначение (код) подразделения,
  • (необязательно) КПП подразделения,
  • идентификатор головного подразделения (обеспечивает возможность перекрепления к другому головному подразделению)
  • (необязательно) адрес подразделения.

При успешной инициализации запроса, проверяется валидность входных параметров. Если проверка входных параметров не пройдена, то сервер вернет ошибки с текстовым описанием причины в теле ответа (См. таблицу 4).

Таблица 4. Ошибки входных параметров

Описание ошибкиПричина
Пользователь {userId} не имеет доступа к абоненту {abonentId}Отказано в доступе: некорректно указан abonentId. Аккаунт пользователя не содержит абонента с указанным идентификатором
Некорректный формат данныхПереданы некорректные параметры запроса: один или несколько из указанных параметров не соответствуют их формату данных
Указанное головное подразделение не принадлежит выбранной организацииПереданы некорректные параметры запроса: указано несуществующее головное подразделение
Указан КПП, который уже используется в другом подразделенииПереданы некорректные параметры запроса: указано КПП, которое уже используется в рамках организации
Указано наименование подразделения, которое уже используется в другом подразделенииПереданы некорректные параметры запроса: указано наименование подразделения, которое уже используется в рамках организации
Указанный абонент не найденПереданы некорректные параметры запроса: не найден абонент связанный с пользователем

Таблица 4 - Ошибки входных параметров при обновлении информации о подразделении

(Описание ошибок будет систематически дополняться)

Если все проверки успешно пройдены, то сервер вернет положительный ответ с HTTP-кодом 200 и модель DepartmentDto, которая будет содержать обновленную информацию по подразделению.