Добавление и настройка пользователей через API
Введение
В данной статье будет рассказано, как можно создавать и обновлять пользователей через DealApp API. Все методы, описанные ниже требуют авторизацию через пользователя с настроенными правами по обновлению пользователей. О том, как производить авторизацию, можно прочитать в статье
Методы API
Пользователи (users)
GET /api/v1/users
Возвращает список пользователей, зарегистрированных в организации.
Параметры для создания пользователя
with_inactive
По умолчанию endpoint возвращает список только активных пользователей. Чтобы получить список всех пользователей (в том числе и неактивных), к запросу нужно добавить параметр with_inactive=true
active
Фильтрует по активному статусу
units_ids
Фильтрует по отделам
roles_ids
Фильтрует по ролям
levels_ids
Фильтрует пользователей по уровню пользователя
invitation_status
Фильтрует по статусу приглашения. Возможные значения: no_invitation_sent, invitation_sent, invitation_accepted, user_blocked
Вместе с фильтрами есть возможность передавать параметр search, который будет фильтровать пользователей по частичному имени или email.
Пример Запроса
Пример Ответа
Так же можно добавить в запрос параметр include=unit,role, чтобы вместе с ответом получить вложенную информацию об отделе и роле пользователя. Пример ответа со вложением: get-users-example.json
POST /api/v1/users
Создание пользователя с предоставленными данными.
string (required)
email для входа пользователя в систему
password
string
Пароль для входа пользователя. Указывать не обязательно.
unit_id
string (uuid) (required)
UUID объекта отдела, в котором будет находиться пользователь. Список отделов можно получить по endpoint'у /api/v1/organization/units
role_id
string (uuid) (required)
UUID объекта роли, с которым будет создаваться пользователь. Список ролей можно получить по endpoint'у /api/v1/organization/roles
last_name
string (required)
Фамилия
first_name
string
Имя и Отчество
integration_uid
string
Идентификатор пользователя в интегрируемой системе. При передаче данных в Custom HTTP интеграциях это поле помогает определить пользователя по данным из поля operator_id.
Пример Запроса
Данные Запроса (new-user-attributes.json):
Пример Ответа:
Параметры для обновления пользователя
PUT /api/v1/users/:user_id
Обновить данные пользователя с ID пользователя user_id
string
last_name
string
first_name
string
active
boolean
role_id
string (uuid)
unit_id
string (uuid)
level_id
string (uuid)
avatar
string (base64)
phone_number
string
integration_uid
string
password
string
password_confirmation
string
prefered_locale
string
Пример запроса
Ответ при этом будет приходить такой же как и при создании пользователя:
Добавление и настройка пользователей через API
Отделы (organization-units)
GET /api/v1/organization/units
Возвращает список существующих отделов организации
name
parent_id
integration_uid
parent_integration_uid
POST /api/v1/organization/units
Создает отдел организации с указанными параметрами
На создание мы принимаем следующие данные: name, integration_uid, parent_id
parent_id это id родительского отдела в DealApp
PUT /api/v1/organization/units/:id
Обновляет отделы организации
Пример загрузки пользователей из CSV с помощью python
В данном разделе будет рассмотрено, как можно загрузить и обновлять список пользователей в автоматическом режиме. Мы напишем скрипт на Python 2.7, так как он встроен в большинство дистрибутивов линукс. Скрипт будет читать данные из CSV файла и делать вызовы на API описанные выше. Мы напишем скрипт таким образом, что мы так же сможем с помощью него обновлять данные о пользователях после того, как пользователи уже будут созданы.
Входные данные
Пример файла для импорта:
users.csv:
В этом файле указаны следующие колонки: ФИО, id, email, Отдел, Роль.
ФИО- имя и фамилия сотрудникаid- уникальный идентификатор клиента, который будет позже использоваться как operator_id в API вызовах Custom Http интеграцииОтдел- название отдела, которое должно совпадать с отделом, указанным на вкладке "Структура организации" на странице "Сотрудники и права доступа"Роль- название роли пользователя, которые можно найти на вкладке настройки ролей на странице "Сотрудники и права доступа"
Клиент для работы с DealApp
Далее мы реализуем клиент, через который будет проходить авторизация и API вызовы в DealApp. Далее этот клиент мы будем использовать в скрипте для загрузки пользователей.
dealapp_client.py:
Скрипт для импорта пользователей
В случае, если все прошло успешно, мы будем видеть следующий текст в консоле после
Last updated
Was this helpful?