Page tree

Citypoint - контроль и аналитика автопарка

Skip to end of metadata
Go to start of metadata

Запрос на создание пользователя с типом "диспетчер". Доступно для вызова только для пользователей с типом владелец.

Запрос:

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.

ПолеТипОписание
typestringТип ресурса (всегда "user")
attributesobjectДанные объекта (см. Описание атрибутов пользователя)
relationshipsobjectСвязанные объекты

Описание атрибутов пользователя:

ПолеТипNullableОписание
NamestringнетФИО Пользователя.
Loginstringнет

Логин пользователя.

Должен содержать только ASCII символы:

- латинские буквы, цифры и символы: "-","_",".","@" 

Длина логина: от 2 до 150 символов.

Passwordstringнет

Пароль пользователя. Должен содержать только ASCII символы.

Минимальная длина пароля - 8 символов.

Поле отсутствует в ответе сервера.

EmailsarrayнетEmail пользователя
PhonesarrayнетТелефоны пользователя
AddressesarrayнетАдреса пользователя
IsLockedboolнетПользователь заблокирован.
AccessTilldatetimeда

Устарело / deprecated - поле больше не используется, при создании изменении игнорируется в выводе всегда null.

Дата до которой разрешён доступ. Всегда передаётся в UTC.

Если null, то бессрочно.

IpMaskstringдаМаска IP  откуда разрешён доступ для данного Аккаунта.

Emails:

ПолеТипNullableОписание
IsPrimaryboolнетОсновной email. На этот email будут отсылаться системные оповещения (к примеру данные для авторизации)
SpammableboolнетРазрешена рассылка email на этот адрес.
EmailTypestringнет
  • home - домашний
  • work - рабочий
EmailstringнетСобственно сам email
Unsubscribestringда

Если пользователь в blacklist то тут будет причина блокировки. (игнорируется при создании)

Phones:

ПолеТипNullableОписание
IsPrimaryboolнетОсновной.
SpammableboolнетРазрешена рассылка email на этот адрес.
PhoneTypestringнет
  • home - домашний
  • work - рабочий
  • mobile - мобильный
Phonestringнет

Собственно сам телефон

Addresses:

ПолеТипNullableОписание
AddressTypeboolнет
  • fact - фактический
  • legal - юридический адрес

  • delivery - адрес доставки
AddressstringнетАдрес пользователя

Связанные объекты:

ПолеТипNullableОписание
AvailObjectsarrayнетДоступные объекты, тип зависит от 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"}}
         }
    }
}
  • No labels