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

SigmaClient.getUserExperimentsDetails

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

Без использования kotlin.coroutines

import ru.expf.sigma.Sigma
import ru.expf.sigma.SigmaGetUserExperimentDetailsCallback
...
val client = Sigma.getClient()
client.getUserExperimentsDetails(
callback = object : SigmaGetUserExperimentDetailsCallback {
override fun onSuccess(experimentsDetails: List<SigmaExperimentDetails>) {
/** Some code with received experimentsDetails */
}

override fun onError(throwable: Throwable) {
/** Some code with received error */
}
}
)

С использованием kotlin.coroutines

import ru.expf.sigma.Sigma
...
async {
val client = Sigma.getClient()
val experimentsDetails = client.getUserExperimentsDetails()
}.await()

Возвращает список всех экспериментов, каждый элемент которого представляет собой объект с деталями эксперимента. Если пользователь не участвует в экспериментах, возвращается пустой список.

Параметры

  • callback - необязательный параметр при использовании suspend версии метода, объект интерфейса SigmaGetUserExperimentDetailsCallback реализующий его методы onSuccess() и onError().

Данный метод возвращает массив объектов интерфейса SigmaExperimentDetails, которые реализуют его следующие поля и методы:

  • поле group - объект, реализующий интерфейс SigmaExperimentDetails.Group, он содержит информацию о группе пользователя (на данный момент этот объект имеет только поле index типа Int)
  • поле id - идентификатор эксперимента типа String
  • поле results - массив объектов, реализующих интерфейс SigmaExperimentDetails.Result. Объекты содержат в себе информацию о параметрах или фича флагах пользователя (на данный момент объекты имеют только поля name и value типа String)
  • поле type - тип эксперимента типа String. Может принимать значения holdout, featureFlag, parameter
  • метод getResult() - принимают название параметра или фича флага эксперимента, возвращают его значение преобразованное в указанный тип (Float, Long, Int, Double, String, Boolean), (JSON-класс - см. SigmaJsonAdapter) или null