func()

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
}