in api/api_fs_model.go [26:126]
func (a *FsModelApiService) GetModelByID(modelId string) (GetModelResponse, error) {
var (
localVarReturnValue GetModelResponse
)
response, err := a.client.GetModelFeature(&a.client.instanceId, &modelId)
if err != nil {
return localVarReturnValue, err
}
mid, _ := strconv.Atoi(modelId)
model := Model{
ModelId: mid,
ProjectName: *response.Body.ProjectName,
Name: *response.Body.Name,
}
if id, err := strconv.Atoi(*response.Body.ProjectId); err == nil {
model.ProjectId = id
}
if response.Body.LabelPriorityLevel != nil {
model.LabelPriorityLevel = int(*response.Body.LabelPriorityLevel)
}
var features []*ModelFeatures
for _, featureItem := range response.Body.Features {
feature := ModelFeatures{
FeatureViewName: *featureItem.FeatureViewName,
Name: *featureItem.Name,
}
if featureItem.AliasName != nil && *featureItem.AliasName != "" && *featureItem.AliasName != feature.Name {
feature.AliasName = *featureItem.AliasName
}
if id, err := strconv.Atoi(*featureItem.FeatureViewId); err == nil {
feature.FeatureViewId = id
}
switch *featureItem.Type {
case "INT32":
feature.Type = int32(constants.FS_INT32)
case "INT64":
feature.Type = int32(constants.FS_INT64)
case "FLOAT":
feature.Type = int32(constants.FS_FLOAT)
case "DOUBLE":
feature.Type = int32(constants.FS_DOUBLE)
case "BOOLEAN":
feature.Type = int32(constants.FS_BOOLEAN)
case "TIMESTAMP":
feature.Type = int32(constants.FS_TIMESTAMP)
case "ARRAY<INT32>":
feature.Type = int32(constants.FS_ARRAY_INT32)
case "ARRAY<INT64>":
feature.Type = int32(constants.FS_ARRAY_INT64)
case "ARRAY<FLOAT>":
feature.Type = int32(constants.FS_ARRAY_FLOAT)
case "ARRAY<DOUBLE>":
feature.Type = int32(constants.FS_ARRAY_DOUBLE)
case "ARRAY<STRING>":
feature.Type = int32(constants.FS_ARRAY_STRING)
case "ARRAY<ARRAY<FLOAT>>":
feature.Type = int32(constants.FS_ARRAY_ARRAY_FLOAT)
case "MAP<INT32,INT32>":
feature.Type = int32(constants.FS_MAP_INT32_INT32)
case "MAP<INT32,INT64>":
feature.Type = int32(constants.FS_MAP_INT32_INT64)
case "MAP<INT32,FLOAT>":
feature.Type = int32(constants.FS_MAP_INT32_FLOAT)
case "MAP<INT32,DOUBLE>":
feature.Type = int32(constants.FS_MAP_INT32_DOUBLE)
case "MAP<INT32,STRING>":
feature.Type = int32(constants.FS_MAP_INT32_STRING)
case "MAP<INT64,INT32>":
feature.Type = int32(constants.FS_MAP_INT64_INT32)
case "MAP<INT64,INT64>":
feature.Type = int32(constants.FS_MAP_INT64_INT64)
case "MAP<INT64,FLOAT>":
feature.Type = int32(constants.FS_MAP_INT64_FLOAT)
case "MAP<INT64,DOUBLE>":
feature.Type = int32(constants.FS_MAP_INT64_DOUBLE)
case "MAP<INT64,STRING>":
feature.Type = int32(constants.FS_MAP_INT64_STRING)
case "MAP<STRING,INT32>":
feature.Type = int32(constants.FS_MAP_STRING_INT32)
case "MAP<STRING,INT64>":
feature.Type = int32(constants.FS_MAP_STRING_INT64)
case "MAP<STRING,FLOAT>":
feature.Type = int32(constants.FS_MAP_STRING_FLOAT)
case "MAP<STRING,DOUBLE>":
feature.Type = int32(constants.FS_MAP_STRING_DOUBLE)
case "MAP<STRING,STRING>":
feature.Type = int32(constants.FS_MAP_STRING_STRING)
default:
feature.Type = int32(constants.FS_STRING)
}
features = append(features, &feature)
}
model.Features = features
localVarReturnValue.Model = &model
return localVarReturnValue, nil
}