121 lines
3.1 KiB
Go
121 lines
3.1 KiB
Go
package iot
|
||
|
||
import (
|
||
"encoding/json"
|
||
"fmt"
|
||
|
||
"myschools.me/suguo/hikvision/iot/model"
|
||
)
|
||
|
||
/*
|
||
基础服务能力 > 设备管理 > 设备分组管理
|
||
*/
|
||
|
||
// 该接口用于通过编号来新增组。最多支持3000个组,最多支持5层嵌套。
|
||
func GroupCreate(groupname, groupno, parentno string) (*model.Hikvision, error) {
|
||
|
||
req := &struct {
|
||
GroupName string `json:"groupName"` //组名称
|
||
GroupNo string `json:"groupNo"` //组编号
|
||
ParentNo string `json:"parentNo"` //父节点组编号
|
||
}{
|
||
GroupName: groupname,
|
||
GroupNo: groupno,
|
||
ParentNo: parentno,
|
||
}
|
||
|
||
resp, err := hikvisionRequest("POST", "/api/v1/open/basic/groups/create", req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result *model.Hikvision
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result, nil
|
||
}
|
||
|
||
// 该接口用于通过组编号来删除组。组下面挂有下级节点或者设备的不可以删除,需清空后进行删除。
|
||
func GroupUpdate(groupname, groupno string) (*model.Hikvision, error) {
|
||
|
||
req := &struct {
|
||
GroupName string `json:"groupName"` //组名称
|
||
GroupNo string `json:"groupNo"` //组编号
|
||
}{
|
||
GroupName: groupname,
|
||
GroupNo: groupno,
|
||
}
|
||
|
||
resp, err := hikvisionRequest("POST", "/api/v1/open/basic/groups/update", req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result *model.Hikvision
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result, nil
|
||
}
|
||
|
||
// 该接口用于通过组编号来删除组。组下面挂有下级节点或者设备的不可以删除,需清空后进行删除。
|
||
func GroupRemove(groupNo string) (*model.Hikvision, error) {
|
||
|
||
resp, err := hikvisionRequest("POST", fmt.Sprintf("/api/v1/open/basic/groups/delete?groupNo=%s", groupNo), nil)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result *model.Hikvision
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result, nil
|
||
}
|
||
|
||
// 该接口用于通过组编号获取组的详细信息
|
||
func GroupDetail(groupNo string) (*model.GroupRes, error) {
|
||
|
||
resp, err := hikvisionRequest("GET", fmt.Sprintf("/api/v1/open/basic/groups/get?groupNo=%s", groupNo), nil)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result = &model.GroupRes{}
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result, nil
|
||
}
|
||
|
||
// 该接口用于获取所有组。
|
||
func GroupGetAll() ([]model.Group, error) {
|
||
|
||
resp, err := hikvisionRequest("GET", "/api/v1/open/basic/groups/actions/listAll", nil)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result *model.Groups
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result.Data, nil
|
||
}
|
||
|
||
// 该接口用于通过组编号查找某组的下级节点。如果父节点为空,则查询根节点。
|
||
func GroupChildList(groupNo string) ([]model.Group, error) {
|
||
|
||
resp, err := hikvisionRequest("GET", fmt.Sprintf("/api/v1/open/basic/groups/actions/childrenList?parentNo=%s", groupNo), nil)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
var result *model.Groups
|
||
if err := json.Unmarshal(resp, &result); err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
return result.Data, nil
|
||
}
|