Перейти к основному содержимому

sigma-client-get-all-user-experiments

SigmaClient.getAllUserExperiments

func getAllUserExperiments(estimateHoldouts: Bool = true, onSuccess: SigmaSuccessCallback<String?>?, onError: SigmaErrorCallback?)

func getAllUserExperiments(estimateHoldouts: Bool = true) async throws -> String?

Получает все эксперименты, в которые попал пользователь.

Параметры

NameTypeRequiredDefaultDescription
estimateHoldoutsBoolНетtrueПараметр, определяющий, включать ли holdout-эксперименты в ответ данного метода. Если true, то метод вернет все эксперименты, включая holdout-эксперименты, в которые попал пользователь. Если false, то метод вернет только эксперименты, не являющиеся holdout-экспериментами.
onSuccessSigmaSuccessCallback String ?ДаТолько для callback версии метода. Closure со строкой вида "expId.userGroupIndex|expId.userGroupIndex|...", где expId - идентификатор эксперимента, userGroupIndex индекс группы пользователя в эксперименте. Возвращает nil, если пользователь не попал ни в один эксперимент.
onErrorSigmaErrorCallback?ДаТолько для callback версии метода. Closure, содержащая в себе ошибку при запросе экспериментов, в которые попал пользователь

Возвращаемое значение

TypeDescription
String?Только для async-await версии метода. Строка вида "expId.userGroupIndex|expId.userGroupIndex|...", где expId - идентификатор эксперимента, userGroupIndex индекс группы пользователя в эксперименте. Возвращает nil, если пользователь не попал ни в один эксперимент.

Ошибки

ErrorDescription
SigmaError.requestConfigFailedОшибка запроса конфигурационного файла. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке
SigmaError.requestLocationFailedОшибка запроса геолокации. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке

Использование

import SigmaSDK

guard let client = Sigma.getClient() else { return }

// Callback версия
client.getAllUserExperiments(
onSuccess: { experiments in
// Обработка строки вида "expId.userGroupIndex|expId.userGroupIndex|...", где `expId` - идентификатор эксперимента, `userGroupIndex` - индекс группы пользователя в эксперименте.
},
onError: { error in
// Обработка ошибки
}
)

// Async-await версия
do {
let allExperiments = try await client.getAllUserExperiments()
// Обработка строки вида "expId.userGroupIndex|expId.userGroupIndex|...", где `expId` - идентификатор эксперимента, `userGroupIndex` - индекс группы пользователя в эксперименте.
} catch let error {
// Обработка ошибки
}

Дополнительная информация

Данные методы возвращают только те эксперименты, в которые попал пользователь.