in api/api_experiment_group.go [33:99]
func (a *ExperimentGroupApiService) ListExperimentGroups(layerId int64, localVarOptionals *ExperimentGroupApiListExperimentGroupsOpts) (ListExperimentGroupsResponse, error) {
listExperimentGroupsRequest := pairecservice.CreateListExperimentGroupsRequest()
listExperimentGroupsRequest.InstanceId = a.instanceId
listExperimentGroupsRequest.LayerId = strconv.Itoa(int(layerId))
if localVarOptionals.Status.Value() == common.ExpGroup_Status_Online {
listExperimentGroupsRequest.Status = "Online"
} else if localVarOptionals.Status.Value() == common.ExpGroup_Status_Offline {
listExperimentGroupsRequest.Status = "Offline"
}
listExperimentGroupsRequest.SetDomain(a.client.GetDomain())
var (
localVarReturnValue ListExperimentGroupsResponse
)
response, err := a.client.ListExperimentGroups(listExperimentGroupsRequest)
if err != nil {
return localVarReturnValue, err
}
for _, item := range response.ExperimentGroups {
if id, err := strconv.Atoi(item.ExperimentGroupId); err == nil {
experimentGroup := model.ExperimentGroup{
ExpGroupId: int64(id),
LayerId: layerId,
ExpGroupName: item.Name,
ExpGroupInfo: item.Description,
DebugUsers: item.DebugUsers,
Owner: item.Owner,
Filter: item.Filter,
DistributionTimeDuration: item.DistributionTimeDuration,
ExpGroupConfig: item.Config,
ReserveBuckets: item.ReservedBuckets,
CrowdTargetType: item.CrowdTargetType,
HoldingBuckets: item.HoldingBuckets,
}
if item.DebugCrowdId != "" {
if crowdId, err := strconv.Atoi(item.DebugCrowdId); err == nil {
experimentGroup.DebugCrowdId = int64(crowdId)
}
}
if sceneId, err := strconv.Atoi(item.SceneId); err == nil {
experimentGroup.SceneId = int64(sceneId)
}
// exproom id
if laboratoryId, err := strconv.Atoi(item.LaboratoryId); err == nil {
experimentGroup.ExpRoomId = int64(laboratoryId)
}
if item.DistributionType == "UserId" {
experimentGroup.DistributionType = common.ExpGroup_Distribution_Type_User
} else if item.DistributionType == "TimeDuration" {
experimentGroup.DistributionType = common.ExpGroup_Distribution_Type_TimeDuration
}
if item.CrowdId != "" {
if crowdId, err := strconv.Atoi(item.CrowdId); err == nil {
experimentGroup.CrowdId = int64(crowdId)
}
}
localVarReturnValue.ExperimentGroups = append(localVarReturnValue.ExperimentGroups, &experimentGroup)
}
}
return localVarReturnValue, nil
}