package bhomedbapi import ( "basic.com/pubsub/protomsg.git" json "github.com/json-iterator/go" ) type SdkApi struct{ } //保存算法,新增(算法id为空),更新(算法id不为空) func (api SdkApi)Register(paramBody map[string]interface{}) (bool,interface{}) { url := DATA_URL_PREFIX + "/sdk/register" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) flag := false client := NewClient(WithNodes(netNode)) respBody, err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil) if err != nil { return flag,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return flag,nil } return res.Success,res.Data } //查找所有算法 func (api SdkApi) FindAll(sdkName string)[]protomsg.Sdk{ url := DATA_URL_PREFIX + "/sdk/findAllSdk" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) var sdkArr []protomsg.Sdk client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string, 0) paramMap["sdkName"] = sdkName respBody, err := client.DoGetRequest(url, paramMap, nil) if err !=nil { return sdkArr } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return sdkArr } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &sdkArr) return sdkArr } func (api SdkApi) FindAllMap() map[string]protomsg.Sdk { m := make(map[string]protomsg.Sdk) allSdks := api.FindAll("") if allSdks != nil && len(allSdks) > 0 { for _,s := range allSdks { m[s.Id] = s } } return m } func (api SdkApi) FindAllSdkRun()(sdkRuns []protomsg.SdkRun){ sdkArr := api.FindAll("") if len(sdkArr) == 0 { return nil } idMap :=make(map[string]string,0) for _,sdk := range sdkArr{ if sdk.IpcId !=""{ if _,ok :=idMap[sdk.IpcId];!ok{ idMap[sdk.IpcId] = sdk.IpcId sdkRuns = append(sdkRuns,protomsg.SdkRun{ IpcId:sdk.IpcId, SdkType:sdk.SdkType, }) } } } return sdkRuns } //查找算法id的slice func (api SdkApi) GetAllSdkIds() (ipcIds []string){ sdkArr := api.FindAll("") if len(sdkArr) == 0 { return nil } idMap :=make(map[string]string,0) for _,sdk := range sdkArr{ if sdk.IpcId !=""{ if _,ok :=idMap[sdk.IpcId];!ok{ idMap[sdk.IpcId] = sdk.IpcId ipcIds = append(ipcIds,sdk.IpcId) } } } return ipcIds } //通过id获取算法信息 func (api SdkApi) GetById(id string) (bool,interface{}){ url := DATA_URL_PREFIX + "/sdk/getById" netNode := getNetNode(Topic_AppCenter_Service) client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string) paramMap["id"] = id respBody, err := client.DoGetRequest(url, paramMap, nil) if err !=nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return false,nil } return res.Success,res.Data } func (api SdkApi) FindByTaskId(taskId string) (flag bool,sdks []protomsg.Sdk) { url := DATA_URL_PREFIX + "/sdk/findByTaskId" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string) paramMap["taskId"] = taskId respBody, err := client.DoGetRequest(url, paramMap, nil) if err !=nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return false,nil } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &sdks) return true,sdks } func (api SdkApi) GetSdkArgs(sdkId string, scope string) (b bool,args []protomsg.SdkArg) { url := DATA_URL_PREFIX + "/sdkArg/getSdkArgs" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string) paramMap["sdkId"] = sdkId paramMap["scope"] = scope respBody, err := client.DoGetRequest(url, paramMap, nil) if err !=nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return false,nil } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &args) return true,args } func (api SdkApi) GetAllSdkChanSet() (b bool, list []protomsg.SdkChanSet) { url := DATA_URL_PREFIX + "/sdk/getAllSdkChanSet" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) respBody,err := client.DoGetRequest(url, nil, nil) if err !=nil { return false,nil } var res Result if err = json.Unmarshal(respBody, &res);err !=nil { return false,nil } bytes,_ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &list) if err !=nil { return false, nil } return true, list } func (api SdkApi) UpdateSdkChanSet(paramBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/sdk/updateSdkChanSet" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) respBody,err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil) if err !=nil { return false } var res Result if err = json.Unmarshal(respBody, &res);err !=nil { return false } return res.Success } func (api SdkApi) Delete(sdkId string) (bool, interface{}) { url := DATA_URL_PREFIX + "/sdk/delete" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) paramBody := map[string]interface{}{ "sdkId": sdkId, } respBody,err := client.DoPostRequest(url, CONTENT_TYPE_JSON, paramBody, nil, nil) if err !=nil { return false, err.Error() } var res Result if err = json.Unmarshal(respBody, &res);err !=nil { return false, err.Error() } return res.Success, res.Data }