package bhomedbapi import ( "basic.com/pubsub/protomsg.git" "encoding/json" ) type AppApi struct{ } func (api AppApi) FindAll(appName string) (list []protomsg.App) { url := DATA_URL_PREFIX + "/app/findAllApp" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) logPrint("netNode:", netNode) client := NewClient(WithNodes(netNode)) paramMap := make(map[string]string, 0) paramMap["appName"] = appName respBody, err := client.DoGetRequest(url, paramMap, nil) logPrint("DoGetRequest err:", err) if err !=nil { return nil } var res Result if err = json.Unmarshal(respBody, &res); err != nil { logPrint(err) return nil } bytes, _ := json.Marshal(res.Data) err = json.Unmarshal(bytes, &list) if err == nil { return list } else { logPrint("unmarshal err:", err) return nil } } func (api AppApi) Save(paramBody map[string]interface{}) bool { url := DATA_URL_PREFIX + "/app/save" netNode := getNetNode(url2Topic(Topic_AppCenter_Service, url)) client := NewClient(WithNodes(netNode)) body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON,paramBody,nil,nil) if err != nil { return false } var res Result if err = json.Unmarshal(body, &res); err != nil { return false } return res.Success } //获取所有已安装的app列表,以package为key func (api AppApi) FindAppMap() map[string]protomsg.App { m := make(map[string]protomsg.App) apps := api.FindAll("") if apps != nil { for _,a := range apps { m[a.Package] = a } } return m }