api/api_feature_view.go (170 lines of code) (raw):

package api import ( "context" "strconv" paifeaturestore "github.com/alibabacloud-go/paifeaturestore-20230621/v4/client" "github.com/aliyun/aliyun-pai-featurestore-go-sdk/v2/constants" ) // Linger please var ( _ context.Context ) type FeatureViewApiService service /* FeatureViewApiService Get FeatureView By ID - @param featureViewId @return GetFeatureViewResponse */ func (a *FeatureViewApiService) GetFeatureViewByID(featureViewId string) (GetFeatureViewResponse, error) { var ( localVarReturnValue GetFeatureViewResponse ) response, err := a.client.GetFeatureView(&a.client.instanceId, &featureViewId) if err != nil { return localVarReturnValue, err } featureView := FeatureView{ ProjectName: *response.Body.ProjectName, FeatureEntityName: *response.Body.FeatureEntityName, Name: *response.Body.Name, Type: *response.Body.Type, Online: *response.Body.SyncOnlineTable, Ttl: int(*response.Body.TTL), Config: *response.Body.Config, } if response.Body.WriteToFeatureDB != nil { featureView.WriteToFeatureDB = *response.Body.WriteToFeatureDB } else { featureView.WriteToFeatureDB = false } if response.Body.RegisterTable != nil && *response.Body.RegisterTable != "" { featureView.RegisterTable = *response.Body.RegisterTable featureView.IsRegister = true } if response.Body.RegisterDatasourceId != nil && *response.Body.RegisterDatasourceId != "" { if id, err := strconv.Atoi(*response.Body.RegisterDatasourceId); err == nil { featureView.RegisterDatasourceId = id } } if response.Body.LastSyncConfig != nil && *response.Body.LastSyncConfig != "" { featureView.LasySyncConfig = *response.Body.LastSyncConfig } featureView.FeatureViewId, _ = strconv.Atoi(featureViewId) if id, err := strconv.Atoi(*response.Body.ProjectId); err == nil { featureView.ProjectId = id } if id, err := strconv.Atoi(*response.Body.FeatureEntityId); err == nil { featureView.FeatureEntityId = id } var fields []*FeatureViewFields for i, fieldItem := range response.Body.Fields { field := FeatureViewFields{ Name: *fieldItem.Name, Position: i + 1, } switch *fieldItem.Type { case "INT32": field.Type = constants.FS_INT32 case "INT64": field.Type = constants.FS_INT64 case "FLOAT": field.Type = constants.FS_FLOAT case "DOUBLE": field.Type = constants.FS_DOUBLE case "BOOLEAN": field.Type = constants.FS_BOOLEAN case "TIMESTAMP": field.Type = constants.FS_TIMESTAMP case "ARRAY<INT32>": field.Type = constants.FS_ARRAY_INT32 case "ARRAY<INT64>": field.Type = constants.FS_ARRAY_INT64 case "ARRAY<FLOAT>": field.Type = constants.FS_ARRAY_FLOAT case "ARRAY<DOUBLE>": field.Type = constants.FS_ARRAY_DOUBLE case "ARRAY<STRING>": field.Type = constants.FS_ARRAY_STRING case "ARRAY<ARRAY<FLOAT>>": field.Type = constants.FS_ARRAY_ARRAY_FLOAT case "MAP<INT32,INT32>": field.Type = constants.FS_MAP_INT32_INT32 case "MAP<INT32,INT64>": field.Type = constants.FS_MAP_INT32_INT64 case "MAP<INT32,FLOAT>": field.Type = constants.FS_MAP_INT32_FLOAT case "MAP<INT32,DOUBLE>": field.Type = constants.FS_MAP_INT32_DOUBLE case "MAP<INT32,STRING>": field.Type = constants.FS_MAP_INT32_STRING case "MAP<INT64,INT32>": field.Type = constants.FS_MAP_INT64_INT32 case "MAP<INT64,INT64>": field.Type = constants.FS_MAP_INT64_INT64 case "MAP<INT64,FLOAT>": field.Type = constants.FS_MAP_INT64_FLOAT case "MAP<INT64,DOUBLE>": field.Type = constants.FS_MAP_INT64_DOUBLE case "MAP<INT64,STRING>": field.Type = constants.FS_MAP_INT64_STRING case "MAP<STRING,INT32>": field.Type = constants.FS_MAP_STRING_INT32 case "MAP<STRING,INT64>": field.Type = constants.FS_MAP_STRING_INT64 case "MAP<STRING,FLOAT>": field.Type = constants.FS_MAP_STRING_FLOAT case "MAP<STRING,DOUBLE>": field.Type = constants.FS_MAP_STRING_DOUBLE case "MAP<STRING,STRING>": field.Type = constants.FS_MAP_STRING_STRING default: field.Type = constants.FS_STRING } for _, attr := range fieldItem.Attributes { switch *attr { case "Partition": field.IsPartition = true case "PrimaryKey": field.IsPrimaryKey = true case "EventTime": field.IsEventTime = true } } fields = append(fields, &field) } featureView.Fields = fields localVarReturnValue.FeatureView = &featureView return localVarReturnValue, nil } /* FeatureViewApiService List FeatureViews * @param optional nil or *FeatureViewApiListFeatureViewsOpts - Optional Parameters: * @param "Pagesize" (optional.Int32) - * @param "Pagenumber" (optional.Int32) - * @param "ProjectId" (optional.Int32) - * @param "Owner" (optional.String) - * @param "Tag" (optional.String) - * @param "Feature" (optional.String) - @return ListFeatureViewsResponse */ func (a *FeatureViewApiService) ListFeatureViews(pagesize, pagenumber int32, projectId string) (ListFeatureViewsResponse, error) { var ( localVarReturnValue ListFeatureViewsResponse ) request := paifeaturestore.ListFeatureViewsRequest{} request.SetPageSize(pagesize) request.SetPageNumber(pagenumber) request.SetProjectId(projectId) request.SetSortBy("GmtCreateTime") request.SetOrder("ASC") response, err := a.client.ListFeatureViews(&a.client.instanceId, &request) if err != nil { return localVarReturnValue, nil } localVarReturnValue.TotalCount = int(*response.Body.TotalCount) var featureViews []*FeatureView for _, view := range response.Body.FeatureViews { if viewId, err := strconv.Atoi(*view.FeatureViewId); err == nil { featureView := FeatureView{ FeatureViewId: viewId, Type: *view.Type, FeatureEntityName: *view.FeatureEntityName, ProjectName: *view.ProjectName, } if view.WriteToFeatureDB != nil { featureView.WriteToFeatureDB = *view.WriteToFeatureDB } else { featureView.WriteToFeatureDB = false } if id, err := strconv.Atoi(*view.ProjectId); err == nil { featureView.ProjectId = id } featureViews = append(featureViews, &featureView) } } localVarReturnValue.FeatureViews = featureViews return localVarReturnValue, nil }