sigma-client-check-flag
SigmaClient.checkFlag
func checkFlag<T: SigmaPropertyType>(flagName: String, onSuccess: SigmaSuccessCallback<T?>?, onError: SigmaErrorCallback?)
func checkFlag<T: SigmaPropertyType>(flagName: String) async throws -> T?
Получает значение FeatureFlag сответствующего типа (Bool
, Int
, Double
, String
или [String: Any]
).
Параметры
Name | Type | Required | Default | Description |
flagName | String | Да | Название Feature Flag | |
onSuccess | SigmaSuccessCallback? | Да | Только для callback версии метода. Closure, содержащая в себе значение запрашиваемого Feature Flag | |
onError | SigmaErrorCallback? | Да | Только для callback версии метода. Closure, сод ержащая в себе ошибку при запросе Feature Flag |
Возвращаемое значение
Type | Description |
Bool? / Int? / Double? / String? / [String: Any]? | Только для async-await версии метода. Значение запрашиваемого Feature Flag |
Ошибки
Error | Description |
SigmaError.requestConfigFailed | Ошибка запроса конфигурационного файла. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке |
SigmaError.requestLocationFailed | Ошибка запроса геолокации. Содержит в себе объект SigmaNetworkError с более детальной информацией об ошибке |
SigmaError.featureFlagNotFound | Feature Flag с данным именем не найден в конфигурационном файле |
SigmaError.featureFlagNoRules | Для данного Feature Flag отсутствуют правила, по которым определяется значение флага |
SigmaError.featureFlagRulesNotSatisfied | Для данного Feature Flag не удовлетворено ни одно правило |
Использование
import SigmaSDK
guard let client = Sigma.getClient() else { return }
// Callback версия
client.checkFlag(
flagName: "my_first_flag",
onSuccess: { (value: Bool?) in
// Обработка значения Feature Flag
},
onError: { error in
// Обработка ошибки
}
)
// Async-await версия
do {
let firstFlag: Bool? = try await client.checkFlag(flagName: "my_first_flag")
// Обработка значения Feature Flag
} catch let error {
// Обработка ошибки
}
Дополнительная информация
Несмотря на то, что методы получения Feature Flag выбрасывают ошибки, даже при отсутствии ошибок значение флага может быть nil
. Эта ситуация может возникнуть, например, при попытке получить флаг с типом Int
, хотя его фактическое значение String
.