From 5af44e28473e6d59a86d75bbac85bb02127b428c Mon Sep 17 00:00:00 2001 From: TizianoCoroneo Date: Thu, 19 Sep 2024 14:38:33 +0200 Subject: [PATCH] feat: New exposure method to specify variant and payload --- Sources/Experiment/ExperimentClient.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Sources/Experiment/ExperimentClient.swift b/Sources/Experiment/ExperimentClient.swift index 2e66b88..a92ecca 100644 --- a/Sources/Experiment/ExperimentClient.swift +++ b/Sources/Experiment/ExperimentClient.swift @@ -15,6 +15,7 @@ import Foundation @objc func variant(_ key: String, fallback: Variant?) -> Variant @objc func all() -> [String:Variant] @objc func exposure(key: String) + @objc func exposure(key: String, variant: String, payload: Any?) @objc func setUser(_ user: ExperimentUser?) @objc func getUser() -> ExperimentUser? @objc func clear() @@ -211,6 +212,11 @@ internal class DefaultExperimentClient : NSObject, ExperimentClient { let variantAndSource = variantAndSource(key: key, fallback: nil) exposureInternal(key: key, variantAndSource: variantAndSource) } + + public func exposure(key: String, variant: String, payload: Any?) { + let variantAndSource = VariantAndSource(variant: Variant(variant, payload: payload)) + exposureInternal(key: key, variantAndSource: variantAndSource) + } public func getUser() -> ExperimentUser? { return self.user