GroupApi. Камеры
API для управления группами камер.
Получение списка групп
Получить список групп камер. Укажите страницу для запроса. Для первого запроса установите page = 0
.
Если запрос прошел успешно, вы получите пагинированный ответ из групп.
@GET(GROUPS)
suspend fun getGroups(@Query(PAGE) page: String): VMSApiResponseGroups
Создание группы
Создать новую группу камер с указанным именем. Изначально группа пуста.
Если запрос был успешным, ответом будет VMSCreateGroupResponse
.
@POST(GROUPS)
suspend fun createGroup(@Body name: VMSSimpleName): VMSCreateGroupResponse
Переименование группы
Переименовать конкретную группу по ее идентификатору с новым именем.
Если запрос был успешным, ответом будет VMSChildGroup
.
@PUT(GROUP_CRUD)
suspend fun renameGroup(@Path(ID) id: String, @Body name: VMSSimpleName): VMSChildGroup
Удаление группы
Удалить определенную группу по ее идентификатору.
Если запрос был успешным, ответом будет VMSStatusResponse
.
@DELETE(GROUP_CRUD)
suspend fun deleteGroup(@Path(ID) id: Int): VMSStatusResponse
Обновление группы
Обновить группу с указанной информацией.
Если запрос был успешным, ответом будет VMSChildGroup
.
@PUT(GROUP_CRUD)
suspend fun updateGroup(@Path(ID) id: String, @Body group: VMSUpdateGroupRequest): VMSChildGroup
@Path(ID) id
— идентификатор группы, для указания необходимой группы.
VMSUpdateGroupRequest
Объект с необходимой информацией для обновления группы.
name
— новое имя группы. Если вы не хотите менять имя группы, установите в этом параметре старое имя.
items
— список идентификаторов камер, которые вы хотите добавить в эту группу.
Синхронизация групп
Этот запрос синхронизирует указанную камеру со всеми группами пользователей. В запросе требуется список групп, к которым будет принадлежать данная камера. Камера будет удалена из других групп.
Если запрос был успешным, ответом будет объект VMSGroupSync
.
@POST(GROUPS_SYNC)
suspend fun syncGroups(@Path(ID) id: String, @Body groups: VMSGroupSyncRequest): VMSGroupSync
@Path(ID) id
— укажите камеру по ее идентификатору.
groups
— укажите список идентификаторов групп, в которых будет представлена камера (камера будет добавлена в группу, если ее там не было раньше).
VMSGroupSync
Информация о способе синхронизации на стороне сервера.
@Parcelize
data class VMSGroupSync(
@SerializedName("type") val type: String = ""
): Parcelable
sync
— вы получите этот тип, если синхронизация была выполнена.
async
— вы получите этот тип, если у пользователя более 50 групп, серверный запрос будет выполняться асинхронно.
После завершения процесса вы получите сообщение сокета, которое сможете обработать. Дополнительную информацию см. в VMSPusherApi
.