Добавление и настройка пользователей через API

Введение

В данной статье будет рассказано, как можно создавать и обновлять пользователей через DealApp API. Все методы, описанные ниже требуют авторизацию через пользователя с настроенными правами по обновлению пользователей. О том, как производить авторизацию, можно прочитать в статье

Доступ через 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

Создание пользователя с предоставленными данными.

Название
Тип
Описание

email

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

Название
Тип
Описание

email

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?