Skip to content

Commit c7feceb

Browse files
committed
add ios related part to read flags
1 parent 73439c6 commit c7feceb

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

ios/Classes/ConfidenceFlutterSdkPlugin.swift

+20
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,20 @@ public class ConfidenceFlutterSdkPlugin: NSObject, FlutterPlugin {
1919
}
2020
confidence.flush()
2121
break;
22+
case "readAllFlags":
23+
guard let flags = try? readAllFlags() else {
24+
result("{}")
25+
return
26+
}
27+
let map = flags.reduce(into: [String: ConfidenceValue]()) { map, flag in
28+
map[flag.flag] = flag.value
29+
}
30+
let networkMessage = TypeMapper.convert(structure: map)
31+
let encoder = JSONEncoder()
32+
let data = try! encoder.encode(networkMessage)
33+
let str = String(decoding: data, as: UTF8.self)
34+
result(str)
35+
break;
2236
case "setup":
2337
let apiKey = call.arguments as! String
2438
self.confidence = Confidence.Builder(clientSecret: apiKey)
@@ -144,6 +158,12 @@ public class ConfidenceFlutterSdkPlugin: NSObject, FlutterPlugin {
144158
}
145159
}
146160

161+
func readAllFlags() throws -> [ResolvedValue] {
162+
let storage = DefaultStorage(filePath: "confidence.flags.resolve")
163+
let savedFlags = try storage.load(defaultValue: FlagResolution.EMPTY)
164+
return savedFlags.flags
165+
}
166+
147167
extension Dictionary<String, Dictionary<String, Any>> {
148168
func convert() -> ConfidenceStruct {
149169
var map: ConfidenceStruct = [:]

0 commit comments

Comments
 (0)