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.