Page tree

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

Skip to end of metadata
Go to start of metadata

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

Метод доступен только для пользователей с ролью Агрегатор.

Запрос:

URL:

Полный список водителей:

GET https://api.url/v2.1/user/<user_id>/aggregated_users

Запрос водителя по id: недоступно

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

If-Modified-Since - Если ранее уже запрашивался полный список пользователей, то при обновлении следует указывать заголовок If-Modified-Since с датой полученной  в заголовке ответа Last-Modified

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

Authorization - для передачи токена. Передается в формате: Bearer <access_token>.

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

ПолеТипЗначение по умолчаниюОписание
fieldsstring

Фильтрация полей отображаемых в объектах.

filterstring

Фильтрация списка заметок.

sortstring
Сортировка по указанному полю

Параметры sort, filter (определённые в стандарте JSON API) в текущей версии api не поддерживаются. В случае их получения сервер будет возвращать ошибку 400.

Ответ:

       Ответ присылается в формате JSON API.

ПолеОписание
links

Поле links содержит ссылки на ресурсы.

Минимально он должен содержать ссылку на текущий ресурс (self).

metaСодержит total_count - количество объектов.
data

Содержит массив объектов в формате JSON API.

Каждый объект водитель содержит

ПолеТипОписание
idintИдентификатор пользователя
typestring

тип ресурса (всегда "userInfo")

attributesobjectДанные водителя (описание атрибутов ниже)
relationshipsobject

Объекты, с которыми связаны данный объект.

Описание атрибутов.

ПолеТипNullableФильтрацияОписание
LoginstringнетдаAccount.Name - Логин пользователя
NamestringнетдаUserInfo.Name - ФИО / название компании
UserTypestringнетда

Возможные типы:

owner - Владелец.

dispatcher - Диспетчер.

aggregator - Агрегатор.

Связанные объекты
ПолеТипNullableФильтрацияОписание
Ownerobject<userInfo>данет

Только для диспетчеров.

Кому принадлежит диспетчер

SubUsersarray<userInfo>нетнет

Только для агрегаторов

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

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

200 ОК - Сервер обработал запрос. В теле ответа  содержится список пользователей. Также будет передан заголовок Last-Modified.

304 Not Modified - Сервер обработал запрос. Изменения не найдены.

401 Unauthorized - не передан заголовок Authorization, либо токен невалидный или окончилась валидация.

403 Forbidden - нет прав на просмотр.

404 Not Found - пользователь не найден.

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


Пример

Запрос всех водителей:

GET https://api.url/v2.1/user/1/aggregated_users HTTP/1.1
Accept: application/vnd.api+json
Authorization: Bearer <auth token>
 
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
Allow: GET
Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT

{
    "links":{
        "self": "https://api.url/v2.1/user/1/aggregated_users"
    },
    "data": [
        {
            "id": "1",
            "type": "userInfo",
            "attributes": {
                "Login": "auth_aggr",
                "Name": "Авторизованный агрегатор",
                "UserType": "aggregator"
            },
            "relationships": {
                "Owner": {
                    "data": null
                },
                "SubUsers": {
                    "data": [
                        {
                            "id": "1",
                            "type": "userInfo"
                        },
                        {
                            "id": "2",
                            "type": "userInfo"
                        },
                        {
                            "id": "3",
                            "type": "userInfo"
                        },
                        {
                            "id": "4",
                            "type": "userInfo"
                        },
                        ...
                    ]
                }
            }
        },
        {
            "id": "2",
            "type": "userInfo",
            "attributes": {
                "Login": "TheUserLogin",
                "Name": "ООО Название компании",
                "UserType": "owner"
            },
            "relationships": {
                "Owner": {
                    "data": null
                },
                "SubUsers": {
                    "data": []
                }
            }
        },
        {
            "id": "3",
            "type": "userInfo",
            "attributes": {
                "Login": "TheDispatcherLogin",
                "Name": "Иванов Иван Иванович",
                "UserType": "dispatcher"
            },
            "relationships": {
                "Owner": {
                    "data": {
                        "id": "5",
                        "type": "userInfo"
                    }
                },
                "SubUsers": {
                    "data": []
                }
            }
        },
        {
            "id": "4",
            "type": "userInfo",
            "attributes": {
                "Login": "TheSubAggregator",
                "Name": "вложенный агрегатор",
                "UserType": "aggregator"
            },
            "relationships": {
                "Owner": {
                    "data": null
                },
                "SubUsers": {
                    "data": [
                        {
                            "id": "2",
                            "type": "userInfo"
                        },
                        {
                            "id": "7",
                            "type": "userInfo"
                        },
                        {
                            "id": "8",
                            "type": "userInfo"
                        }
                    ]
                }
            }
        },      
        {
            "id": "5",
            "type": "userInfo",
            "attributes": {
                "Login": "TheOwnerDispatcherLogin",
                "Name": "ЗАО Владелец-Диспетчера",
                "UserType": "owner"
            },
            "relationships": {
                "Owner": {
                    "data": null
                },
                "SubUsers": {
                    "data": []
                }
            }
        },
        {
            "id": "7",
            "type": "userInfo",
            "attributes": {
                "Login": "TheUserLogin2",
                "Name": "Пользователь Вложенного Агрегатора",
                "UserType": "owner"
            },
            "relationships": {
                "Owner": {
                    "data": null
                },
                "SubUsers": {
                    "data": []
                }
            }
        }
        ...
     ]
}
  • No labels