package bhomedbapi import ( "basic.com/pubsub/protomsg.git" "encoding/json" ) type CameraRuleApi struct{ } func (api CameraRuleApi) FindByCameraId(cameraId string) (bool,interface{}) { url := DATA_URL_PREFIX + "/camera/rule/findByCameraId" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) param := map[string]string { "cameraId": cameraId, } body, err := client.DoGetRequest(url,param,nil) if err != nil { logPrint(err) return false,nil } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false,nil } return res.Success, res.Data } func (api CameraRuleApi) Save(reqBody map[string]interface{}) (bool,interface{}) { url := DATA_URL_PREFIX + "/camera/rule/save" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, reqBody,nil,nil) if err != nil { logPrint(err) return false, err.Error() } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint("result:", res, "err:", err, "body:", string(body)) return false, err.Error() } return res.Success, res.Data } func (api CameraRuleApi) PasteRules(reqBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/camera/pasteRules" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, reqBody,nil,nil) if err != nil { logPrint(err) return false } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false } return res.Success } func (api CameraRuleApi) SaveLinkRulesByGroup(reqBody map[string]interface{}) (bool, interface{}) { url := DATA_URL_PREFIX + "/camera/rule/saveLinkRulesByGroup" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, reqBody,nil,nil) if err != nil { logPrint(err) return false, err.Error() } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false, err.Error() } return res.Success, res.Data } func (api CameraRuleApi) GetLinkRulesByCameraIds(reqBody map[string]interface{}) (bool,interface{}) { url := DATA_URL_PREFIX + "/camera/rule/getLinkRulesByCameraIds" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, reqBody,nil,nil) if err != nil { logPrint(err) return false,nil } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false,nil } return res.Success, res.Data } func (api CameraRuleApi) UpdateAlarmLevel(reqBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/camera/rule/updateAlarmLevel" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON, reqBody,nil,nil) if err != nil { logPrint(err) return false } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false } return res.Success } func (api CameraRuleApi) DeleteByGroup(groupId string) bool { url := DATA_URL_PREFIX + "/camera/rule/deleteGroup" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoDeleteRequest(url, CONTENT_TYPE_JSON, nil,nil) if err != nil { logPrint(err) return false } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err, "body:", string(body)) return false } return res.Success } func (api CameraRuleApi) FindAll() (flag bool,allRules []protomsg.CameraAndRules) { url := DATA_URL_PREFIX + "/camera/rule/findAll" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoGetRequest(url, nil,nil) if err != nil { logPrint(err) return false,nil } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false,nil } if !res.Success { return false, nil } bytes, err := json.Marshal(res.Data) if err != nil { logPrint(err) return false, nil } err = json.Unmarshal(bytes, &allRules) if err != nil { logPrint(err) return false, nil } return true, allRules } func (api CameraRuleApi) FindAllTaskById(camId string) (flag bool, crs protomsg.CameraAndRules) { url := DATA_URL_PREFIX + "/camera/rule/findAllTaskById" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) paramQuery := map[string]string { "cameraId": camId, } body, err := client.DoGetRequest(url, paramQuery,nil) if err != nil { logPrint(err) return false,crs } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false,crs } if !res.Success { return false, crs } bytes, err := json.Marshal(res.Data) if err != nil { logPrint(err) return false, crs } err = json.Unmarshal(bytes, &crs) if err != nil { logPrint(err) return false, crs } return true, crs } func (api CameraRuleApi) ExistRunningTask(camId string) bool { url := DATA_URL_PREFIX + "/camera/rule/existRunningTask" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) paramQuery := map[string]string { "cameraId": camId, } body, err := client.DoGetRequest(url, paramQuery,nil) if err != nil { logPrint(err) return false } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false } if !res.Success { return false } if v,ok := res.Data.(bool);ok { return v } return false } func (api CameraRuleApi) FindAllCameraLink() (b bool, list []protomsg.CameraLink) { url := DATA_URL_PREFIX + "/camera/findAllCameraLink" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoGetRequest(url, nil,nil) if err != nil { logPrint(err) return false, nil } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false, nil } if !res.Success { return false, nil } else { bts, e := json.Marshal(res.Data) if e != nil { logPrint(e) return false, nil } err = json.Unmarshal(bts, &list) if err == nil { return true, list } else { return false ,nil } } } func (api CameraRuleApi) FindLinksByCameraIds(camIds []string) (b bool,linkList []protomsg.CameraLink) { url := DATA_URL_PREFIX + "/camera/rule/findLinksByCameraIds" netNode := getNetNode(url2Topic(Topic_Scene_Service, url)) client := NewClient(WithNodes(netNode)) reqBody := map[string]interface{}{ "cameraIds": camIds, } body, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, reqBody,nil, nil) if err != nil { logPrint(err) return false,nil } var res Result if err = json.Unmarshal(body, &res); err != nil { logPrint(err) return false,nil } if res.Success { bts, err := json.Marshal(res.Data) if err != nil { logPrint(err) return false, nil } err = json.Unmarshal(bts, &linkList) if err == nil { return true, linkList } } return false, nil }