package dbapi import ( "basic.com/pubsub/protomsg.git" "encoding/json" "strconv" ) type CameraRuleApi struct{ Ip string Port int } func (api CameraRuleApi) getBasicUrl() string { if api.Ip == "" { return BASIC_URL } if api.Ip == "" { api.Ip = DEFAULT_IP } if api.Port == 0 { api.Port = DEFAULT_PORT } return "http://"+api.Ip+":"+strconv.Itoa(api.Port) } func (api CameraRuleApi) FindByCameraId(cameraId string) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/findByCameraId" client := NewClient() 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 { url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/save" client := NewClient() 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("result:", res, "err:", err, "body:", string(body)) return false } return res.Success } func (api CameraRuleApi) PasteRules(reqBody map[string]interface{}) bool { url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/pasteRules" client := NewClient() 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 { url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/saveLinkRulesByGroup" client := NewClient() 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) GetLinkRulesByCameraIds(reqBody map[string]interface{}) (bool,interface{}) { url := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/getLinkRulesByCameraIds" client := NewClient() 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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/updateAlarmLevel" client := NewClient() 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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/deleteGroup/"+groupId client := NewClient() 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 := api.getBasicUrl() + DATA_URL_PREFIX + "/camera/rule/findAll" client := NewClient() 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 }