Запрос на создание пользователя с типом "диспетчер". Доступно для вызова только для пользователей с типом владелец.
Запрос:
URL:
POST https://api.url/api/v2.1/user/<account_id>/dispatchers
Доп. Заголовки:
Content-Type - формат запроса. Должно быть "application/vnd.api+json"
Accept - указание формата ответа. Должно быть "application/vnd.api+json"
Доп. Параметры:
sendAuthData - отправить данные для входа в систему по email. Требует чтобы в связанных данных был хотя бы один email c флагом IsPrimary и Spammable.
Данные запроса:
Данные присылаются в формате JSON API. Формат данных аналогичен формату данных в ответе на запрос получения данных пользователя, за исключением, что не должно указываться Id.
Поля DateOfCreation, AclType, LastLoginDate не требуются, они допускаются для соответствия формату получения данных, но сервер их игнорирует.
Ответ присылается в формате JSON API. В заголовке Location будет содержаться ссылка на пользователя. В теле ответа будет полное описание созданного пользователя
Поле | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | Содержит данные по пользователю в формате JSON API.
|
Описание атрибутов пользователя:
Поле | Тип | Nullable | Описание |
---|---|---|---|
Name | string | нет | ФИО Пользователя. |
Login | string | нет | Логин пользователя. Должен содержать только ASCII символы: - латинские буквы, цифры и символы: "-","_",".","@" Длина логина: от 2 до 150 символов. |
Password | string | нет | Пароль пользователя. Должен содержать только ASCII символы. Минимальная длина пароля - 8 символов. Поле отсутствует в ответе сервера. |
Emails | array | нет | Email пользователя |
Phones | array | нет | Телефоны пользователя |
Addresses | array | нет | Адреса пользователя |
IsLocked | bool | нет | Пользователь заблокирован. |
AccessTill | datetime | да | Устарело / deprecated - поле больше не используется, при создании изменении игнорируется в выводе всегда null. Дата до которой разрешён доступ. Всегда передаётся в UTC. Если null, то бессрочно. |
IpMask | string | да | Маска IP откуда разрешён доступ для данного Аккаунта. |
Emails:
Поле | Тип | Nullable | Описание |
---|---|---|---|
IsPrimary | bool | нет | Основной email. На этот email будут отсылаться системные оповещения (к примеру данные для авторизации) |
Spammable | bool | нет | Разрешена рассылка email на этот адрес. |
EmailType | string | нет |
|
string | нет | Собственно сам email | |
Unsubscribe | string | да | Если пользователь в blacklist то тут будет причина блокировки. (игнорируется при создании) |
Phones:
Поле | Тип | Nullable | Описание |
---|---|---|---|
IsPrimary | bool | нет | Основной. |
Spammable | bool | нет | Разрешена рассылка email на этот адрес. |
PhoneType | string | нет |
|
Phone | string | нет | Собственно сам телефон |
Addresses:
Поле | Тип | Nullable | Описание |
---|---|---|---|
AddressType | bool | нет |
|
Address | string | нет | Адрес пользователя |
Связанные объекты:
Поле | Тип | Nullable | Описание |
---|---|---|---|
AvailObjects | array | нет | Доступные объекты, тип зависит от ACLType |
AccountRoles | array<role> | нет | Список ролей привязанных к пользователю. Игнорируется сервером |
Привязка AvailObjects через метод редактирования диспетчера не поддерживается. Допускается передача пустого массива. Поле необязательно должно быть в запросе.
Коды ответов:
201 Created - Сервер создал пользователя. В теле ответа содержатся данные пользователя. Также будет передан заголовок Location с ссылкой на пользователя.
403 Forbidden - нет прав на создание пользователей.
409 Conflict - Пользователь с таким логином уже есть в системе.
400 Bad Request - Переданы неподдерживаемые параметры, либо сервер не понял запрос (описание ошибки в теле ответа).
Также возможны другие ошибки.
Пример
POST https://api.url/api/v2.1/user/1/dispatchers HTTP/1.1 Accept: application/vnd.api+json Content-Type: application/vnd.api+json Authorization: Bearer <auth token> { "data": { "type": "user", "attributes": { "Name": "Иванов Иван Иванович", "Login": "test@example.com", "Password": "qwerty", "IsLocked": false, "AccessTill": "2020-06-20T00:00:00Z", "Emails": [ {"IsPrimary": true, "EmailType": "work", "Email": "test@example.com", "Spammable": true, "Unsubscribe": null}, {"IsPrimary": false, "EmailType": "home", "Email": "test2@example.com", "Spammable": true, "Unsubscribe": null}, ], "Phones": [ {"IsPrimary": false, "PhoneType": "mobile", "Phone": "123456789", "Spammable": true}, ], "Addresses": [ {"AddressType": "fact", "Address": "Somewhere on Earth"}, ], "IpMask": null }, "relationships":{ "AvailObjects": {"data": []} } } } HTTP/1.1 201 Created Content-Type: application/vnd.api+json Location: https://api.url/api/v2.1/user/1/dispatchers/2 { "data": { "type": "user", "attributes": { "Name": "Иванов Иван Иванович", "Login": "test@example.com", "Password": "qwerty", "IsLocked": false, "AccessTill": "2020-06-20T00:00:00Z", "Emails": [ {"IsPrimary": true, "EmailType": "work", "Email": "test@example.com", "Spammable": true}, {"IsPrimary": false, "EmailType": "home", "Email": "test2@example.com", "Spammable": true}, ], "Phones": [ {"IsPrimary": false, "PhoneType": "mobile", "Phones": "123456789", "Spammable": true}, ], "Addresses": [ {"AddressType": "fact", "Address": "Somewhere on Earth"}, ], "LastLoginDate": null, "IpMask": null, "AclType": "car", "DateOfCreation": "2020-06-11T00:00:00Z" }, "relationships":{ "AvailObjects": {"links": {"self": "https://api.url/api/v2.1/user/1/dispatchers/2/relationships/AvailObjects"}} } } }