Сотрудники

Сотрудник - пользователь системы, к которому могут быть привязаны заказы, задачи, финансовые или складские операции. Сотрудники с некоторыми ролями (admin, manager, boss) могут быть авторизованы в системе через web-интерфейс. Некоторые другие роли (apiclient, webhook) могут использовать систему только через API. Сотрудники с ролью worker на данный момент не могут пользоваться системой и создаются только для привязки к услугам в визите.

Модель сотрудника

Ключ

Тип

Описание

id

ObjectId

ID сотрудника

username

str

Логин сотрудника

name

str

Полное имя сотрудника (с должностью)

first_name

str

Имя сотрудника

last_name

str

Фамилия сотрудника

role

Role

Роль сотрудника

job_title

str

Должность сотрудника

image

Optional[ObjectId]

Аватар сотрудника

units

List[ObjectId]

Список точек, к которым привязан сотрудник

attributes

Dict[str, str]

Атрибуты сотрудника

franchisee

Optional[Dict]

(Только для франчайзеров) Информация о франчайзи сотрудника

Роли сотрудников

Название

Описание

manager

Рабочая должность. Сотрудники с этой ролью могут логинится в POS-интерфейс и выполнять продажи

admin

Администратор франчайзи. Сотрудники с этой должностью могут логинится в бек-офис и выполнять настройки системы в пределах франчайзи.

boss

Франчайзер. Сотрудники с этой должностью могут настраивать франчайзинг и просматрифать информацию о всех операциях в системе

worker

Общая должность работника системы. Может быть использована для связывания оказываемых услуг с человеком, выполняющим их

apiclient

Общая роль API-клиента. В зависимости от установки поля franchisee, может иметь как ограниченный доступ к сети одного франчайзи, так и доступ уровня франчайзера

Список сотрудников

Для получения списка сотрудников необходимо использовать API GET /api/user.

В GET-параметрах запроса допустимо использование следующих фильтров:

Ключ

Тип

Описание

query

str

Строковый поиск по имени сотрудника

franchisees

List[ObjectId]

Франчайзи, к которым привязан сотрудник. Доступно только для пользователей-франчайзеров

roles

List[Role]

Список ролей сотрудников

API использует стандартную схему пагинации.

Пример запроса сотрудников с ролью worker

curl 'http://demo.idealist.one/api/user?roles=\["worker"\]' \
     --header "Authorization: Bearer persistent 2adbd5dc-38c4-4963-8930-6d75827ff0fe"

Создание сотрудника

Для создания сотрудника используется API POST /api/user.

Необходимым для создания полем является только поле role, все остальные поля являются опциональными и по-умолчанию примут значение null.

Пример запроса создания сотрудника с ролью worker

curl -X POST \
    https://demo.idealist.one/api/user \
    -H 'Authorization: Bearer persistent 2adbd5dc-38c4-4963-8930-6d75827ff0fe' \
    -H 'cache-control: no-cache' \
    -d '{
            "role": "worker",
            "first_name": "Сотрудник",
            "last_name": "Компании"
        }'

Редактирование сотрудника

Редактирование сотрудника выполняется через API PUT /api/user/<user_id>, где <user_id> - ID сотрудника, установленный системой при создании.

При редактировании необходимо передать все поля, которые необходимо изменить - отсутствующие ключи автоматически установятся в null.

Поля id и role нельзя изменить.

Пример запроса редактирования сотрудника

curl -X PUT \
    https://demo.idealist.one/api/user/5c9351b0b96d4a56b9418ec3 \
    -H 'Authorization: Bearer persistent 2adbd5dc-38c4-4963-8930-6d75827ff0fe' \
    -H 'Content-Type: application/json' \
    -H 'Postman-Token: 8d46f98d-db3e-49b4-89ec-e5916d7494fa' \
    -H 'cache-control: no-cache' \
    -d '{
        "first_name": "Другой",
        "last_name": "Сотрудник"
    }'