api/api_experiment_room.go (75 lines of code) (raw):

package api import ( "context" "strconv" "github.com/aliyun/alibaba-cloud-sdk-go/services/pairecservice" "github.com/aliyun/aliyun-pairec-config-go-sdk/v2/common" "github.com/aliyun/aliyun-pairec-config-go-sdk/v2/model" "github.com/antihax/optional" ) // Linger please var ( _ context.Context ) type ExperimentRoomApiService service /* ExperimentRoomApiService list all ExperimentRooms By filter condition list all ExperimentRooms By filter condition * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param environment environment of experiment room * @param optional nil or *ExperimentRoomApiListExperimentRoomsOpts - Optional Parameters: * @param "SceneId" (optional.Int64) - list all experiment rooms of the scene_id @return InlineResponse2003 */ type ExperimentRoomApiListExperimentRoomsOpts struct { SceneId optional.Int64 Status optional.Uint32 } func (a *ExperimentRoomApiService) ListExperimentRooms(environment string, localVarOptionals *ExperimentRoomApiListExperimentRoomsOpts) (ListExperimentRoomsResponse, error) { listLaboratoriesRequest := pairecservice.CreateListLaboratoriesRequest() listLaboratoriesRequest.InstanceId = a.instanceId listLaboratoriesRequest.Environment = common.EnvironmentDesc2OpenApiString[environment] listLaboratoriesRequest.SceneId = strconv.Itoa(int(localVarOptionals.SceneId.Value())) if localVarOptionals.Status.Value() == common.ExpRoom_Status_Online { listLaboratoriesRequest.Status = "Online" } else if localVarOptionals.Status.Value() == common.ExpRoom_Status_Offline { listLaboratoriesRequest.Status = "Offline" } listLaboratoriesRequest.SetDomain(a.client.GetDomain()) //listLaboratoriesRequest.Status = var ( localVarReturnValue ListExperimentRoomsResponse ) response, err := a.client.ListLaboratories(listLaboratoriesRequest) if err != nil { return localVarReturnValue, err } for _, item := range response.Laboratories { if id, err := strconv.Atoi(item.LaboratoryId); err == nil { experimentRoom := &model.ExperimentRoom{ ExpRoomId: int64(id), ExpRoomName: item.Name, ExpRoomInfo: item.Description, DebugUsers: item.DebugUsers, BucketCount: int32(item.BucketCount), Filter: item.Filter, ExpRoomBuckets: item.Buckets, DebugCrowdId: 0, } if item.DebugCrowdId != "" { if crowdId, err := strconv.Atoi(item.DebugCrowdId); err == nil { experimentRoom.DebugCrowdId = int64(crowdId) } } if sceneId, err := strconv.Atoi(item.SceneId); err == nil { experimentRoom.SceneId = int64(sceneId) } // experiment room type if item.Type == "Base" { experimentRoom.Type = common.ExpRoom_Type_Base } else if item.Type == "NonBase" { experimentRoom.Type = common.ExpRoom_Type_Normal } if item.BucketType == "Filter" { experimentRoom.BucketType = common.Bucket_Type_Filter } else if item.BucketType == "Uid" { experimentRoom.BucketType = common.Bucket_Type_UID } else if item.BucketType == "UidHash" { experimentRoom.BucketType = common.Bucket_Type_UID_HASH } else { experimentRoom.BucketType = common.Bucket_Type_Custom } experimentRoom.Environment = int32(common.OpenapiEnvironment2Environment[item.Environment]) localVarReturnValue.ExperimentRooms = append(localVarReturnValue.ExperimentRooms, experimentRoom) } } return localVarReturnValue, nil }