API для управления организациями¶
API-запросы для управления организациями могут потребоваться для интеграции с биллингом или при создании собственного приложения/веб-интерфейса для Watcher. Например, если оператор связи создает Организации, пресеты и пользователей из интерфейса Watcher, а затем назначает абонента владельцем Организации, то в биллинге скорее всего нужно будет реализовать запрос информации о том, какие настройки Организации выбрал абонент. Если биллинг является управляющей системой, то нужно реализовать запросы на создание, изменение и удаление Организаций, ограничение DVR, количества камер и пользователей в организации.
Дополнительную информацию о запросах для добавления камер и интеграции с биллингом см. на странице Интеграция в существующую систему биллинга.
В этом разделе приводятся примеры API-запросов для работы с организациями. Полный список параметров запросов и ответов см. по ссылке.
Для авторизации запросов можно использовать ключи различных типов. В данном разделе используется ключ x-vsaas-session: это значит, что у пользователя, от имени которого выполняются запросы, должны быть права на выполнение соответствующих действий. Подробнее о типах ключей см. Способы авторизации API-запроса
Получение списка Организаций¶
Например, если вы создали организации из интерфейса Watcher, а затем решили получить список организаций со всеми параметрами в биллинге, используйте запрос
GET URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/
Пример:
curl --request GET \
--url http://127.0.0.1/vsaas/api/v2/organizations/ \
--header 'x-vsaas-session: <vsaas_session>'
Информация о трех организациях: Default, HOME, Cafe
[
    {
        "mosaic_count": 4,
        "id": 6,
        "domain": {
            "id": 1,
            "title": "Flussonic Watcher"
        },
        "user_count": 2,
        "user_limit": 2000,
        "dvr_limit": 1000,
        "can_view_stats": true,
        "camera_count": 3,
        "can_edit_users": true,
        "camera_limit": 5000,
        "owner": {
            "id": 14,
            "login": "Subscriber 1"
        },
        "can_edit_cameras": true,
        "is_member": true,
        "is_default": false,
        "title": "Cafe"
    },
    {
        "mosaic_count": 0,
        "id": 1,
        "domain": {
            "id": 1,
            "title": "Flussonic Watcher"
        },
        "user_count": 2,
        "user_limit": 1000,
        "dvr_limit": 100,
        "can_view_stats": true,
        "camera_count": 1,
        "can_edit_users": true,
        "camera_limit": 1000,
        "owner": {
            "id": 1,
            "login": "admin"
        },
        "can_edit_cameras": true,
        "is_member": true,
        "is_default": true,
        "title": "Default"
    },
    {
        "mosaic_count": 0,
        "id": 3,
        "domain": {
            "id": 1,
            "title": "Flussonic Watcher"
        },
        "user_count": 3,
        "user_limit": 2000,
        "dvr_limit": 1000,
        "can_view_stats": false,
        "camera_count": 1,
        "can_edit_users": true,
        "camera_limit": 5000,
        "owner": {
            "id": 3,
            "login": "Subscriber 2"
        },
        "can_edit_cameras": true,
        "is_member": true,
        "is_default": false,
        "title": "HOME"
    }
]
Создание организации¶
Чтобы создать организацию, отправьте запрос
POST URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/
Передаваемые параметры:
- title (string) — обязательный параметр, название создаваемой Организации.
- camera_limit (integer) — ограничение на количество камер. Если параметр не задан или равен 0, то будет установлен лимит по умолчанию 1000.
- dvr_limit (integer) — ограничение на размер дискового пространства. Если параметр не задан, то будет установлено ограничение по умолчанию 100 Гбайт.
- owner_id (integer) — идентификатор пользователя, являющегося администратором (владельцем) Организации. Если параметр не задан, то организация будет создана без владельца, и ни у одного пользователя, даже у супер-администратора, не будет прав на редактирование настроек камер, пользователей и мозаик в этой Организации. Пользователь с правами администратора Watcher или супер-администратора сможет изменить владельца Организации. Подробнее о механизме прав см. на странице Управление пользователями и их правами
- user_limit (integer) — ограничение на количество пользователей. Если параметр не задан, то будет установлено значение по умолчанию 1000.
Пример:
curl --request POST \
--url http://127.0.0.1/vsaas/api/v2/organizations \
--header 'content-type: application/json' \
--header 'x-vsaas-session: <vsaas_session>' \
--data '{
"title": "Org2"
}'
{
    "id": 12,
    "domain": {
        "id": 1,
        "title": "Flussonic Watcher"
    },
    "user_limit": 1000,
    "dvr_limit": 100,
    "camera_limit": 1000,
    "owner": null,
    "title": "Org2"
}
Информация об организации¶
Чтобы получить информацию об организации, используйте запрос
GET URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)
Пример с идентификатором 1
curl --request GET \
--url http://127.0.0.1/vsaas/api/v2/organizations/1 \
--header 'x-vsaas-session: <vsaas_session>'
{
    "mosaic_count": 0,
    "id": 1,
    "domain": {
        "id": 1,
        "title": "Flussonic Watcher"
    },
    "user_count": 2,
    "user_limit": 1000,
    "dvr_limit": 100,
    "can_view_stats": true,
    "camera_count": 1,
    "can_edit_users": true,
    "camera_limit": 1000,
    "owner": {
        "id": 1,
        "login": "admin"
    },
    "can_edit_cameras": true,
    "is_member": true,
    "is_default": true,
    "title": "Default"
}
Изменение организации¶
Чтобы изменить один или несколько параметров Организации, используйте запрос
PUT URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)
Параметры запроса такие же, как при создании Организации. В теле запроса передайте только те параметры, которые нужно изменить.
Пример: изменение названия организации с идентификатором 12
curl --request PUT \
--url http://127.0.0.1/vsaas/api/v2/organizations/12 \
--header 'content-type: application/json' \
--header 'x-vsaas-session: <vsaas_session>' \
--data '{
"title": "test org 2"
}'
Watcher вернет обновленный список параметров Организации, такой же как в примере выше.
Удаление организации¶
Чтобы удалить Организацию, используйте запрос
DELETE URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)
Обратите внимание, что в запрос необходимо добавить заголовок force, иначе запрос вернет ошибку. Это связано с тем, что в любой организации есть папка по умолчанию, которую нельзя удалить, и Организацию нельзя удалить обычным способом, пока у нее есть зависимые объекты.
Пример:
curl --request DELETE \
--url http://127.0.0.1/vsaas/api/v2/organizations/1 \
--header 'x-vsaas-session: <vsaas_session>' \
--header 'force: 1'
В случае успешного удаления Watcher вернет {"success":true}