Skip to content

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}