in api/api_experiment.go [33:95]
func (a *ExperimentApiService) ListExperiments(expGroupId int64, localVarOptionals *ExperimentApiListExperimentsOpts) (ListExperimentsResponse, error) {
listExperimentsRequest := pairecservice.CreateListExperimentsRequest()
listExperimentsRequest.InstanceId = a.instanceId
listExperimentsRequest.ExperimentGroupId = strconv.Itoa(int(expGroupId))
if localVarOptionals.Status.Value() == common.Experiment_Status_Online {
listExperimentsRequest.Status = "Online"
} else if localVarOptionals.Status.Value() == common.Experiment_Status_Offline {
listExperimentsRequest.Status = "Offline"
}
listExperimentsRequest.SetDomain(a.client.GetDomain())
var (
localVarReturnValue ListExperimentsResponse
)
response, err := a.client.ListExperiments(listExperimentsRequest)
if err != nil {
return localVarReturnValue, err
}
for _, item := range response.Experiments {
if id, err := strconv.Atoi(item.ExperimentId); err == nil {
experiment := model.Experiment{
ExperimentId: int64(id),
ExpGroupId: expGroupId,
ExperimentName: item.Name,
ExperimentInfo: item.Description,
ExperimentFlow: uint32(item.FlowPercent),
ExperimentBuckets: item.Buckets,
DebugUsers: item.DebugUsers,
ExperimentConfig: item.Config,
}
if item.DebugCrowdId != "" {
if crowdId, err := strconv.Atoi(item.DebugCrowdId); err == nil {
experiment.DebugCrowdId = int64(crowdId)
}
}
if sceneId, err := strconv.Atoi(item.SceneId); err == nil {
experiment.SceneId = int64(sceneId)
}
// exproom id
if laboratoryId, err := strconv.Atoi(item.LaboratoryId); err == nil {
experiment.ExpRoomId = int64(laboratoryId)
}
if layerId, err := strconv.Atoi(item.LayerId); err == nil {
experiment.LayerId = int64(layerId)
}
switch item.Type {
case "Baseline":
experiment.Type = common.Experiment_Type_Base
case "Normal":
experiment.Type = common.Experiment_Type_Test
}
localVarReturnValue.Experiments = append(localVarReturnValue.Experiments, &experiment)
}
}
return localVarReturnValue, nil
}