package bhomedbapi
|
|
import (
|
"basic.com/pubsub/protomsg.git"
|
jsoniter "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
|
var json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
|
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 json = jsoniter.ConfigCompatibleWithStandardLibrary
|
var res Result
|
if err = json.Unmarshal(respBody, &res); err != nil {
|
return false, err.Error()
|
}
|
return res.Success, res.Data
|
}
|