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}