Page tree

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

Skip to end of metadata
Go to start of metadata

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

Запрос:

URL:

PATCH https://api.url/api/v2.1/user/<account_id>/dispatchers/<dispatcher_id>

Доп. Заголовки:

Content-Type - формат запроса. Должно быть "application/vnd.api+json"

Accept - указание формата ответа. Должно быть "application/vnd.api+json"

        Доп. Параметры:

                sendAuthData - отправить данные для входа в систему по email. Требует чтобы в связанных данных был хотя бы один email c флагом IsPrimary.

Данные запроса:

Данные присылаются в формате 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, email не должны повторятся у одного и того же диспетчера

Phones:

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

Собственно сам телефон, телефон не должен повторятся у одного и того же диспетчера

Addresses:

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

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

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

ПолеТипNullableОписание
AvailObjectsarrayнетДоступные объекты, тип зависит от ACLType

AccountRoles

array<role>нет

Список ролей привязанных к пользователю.

Игнорируется сервером

Редактирование AvailObjects через метод редактирования диспетчера не поддерживается.

Коды ответов:

200 OK - Сервер обновил пользователя. В теле ответа содержатся данные пользователя.

403 Forbidden - нет прав на редактирование пользователей.

409 Conflict - Пользователь с таким логином уже есть в системе.

400 Bad Request - Переданы не поддерживаемые параметры либо сервер не понял запрос (описание ошибки в теле ответа).

Также возможны другие ошибки.

Пример

POST https://api.url/api/v2.1/user/1/dispatchers/2 HTTP/1.1
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json
Authorization: Bearer <auth token>

{
    "data": {
        "id": 2,
        "type": "user",
        "attributes": {
            "Name": "Сидоров Федор Семёнович",
            "Login": "test@example.com",
			"IpMask": "192.168.0.0/24"
         }
    }
}


HTTP/1.1 200 Ok
Content-Type: application/vnd.api+json			
{
    "links": {
        "self": "https://api.url/api/v2.1/user/1/dispatchers/2"
    },
    "data": {
        "id", "2",
        "type": "user",
        "attributes": {
            "Name": "Сидоров Федор Семёнович",
            "Login": "test@example.com",
            "IsLocked": false,
			"AccessTill": "2020-06-20T00:00:00Z",
			"IpMask": "192.168.0.0/24",
            "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", "Phone": "123456789", "Spammable": true},
            ],
            "Addresses": [
                {"AddressType": "fact", "Address": "Somewhere on Earth"},
            ],
            "LastLoginDate": 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