From 9883ad728fff842601ce9f42168e1b2a266a1a48 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 2 Jun 2022 14:36:12 +0200 Subject: [PATCH] Add ClientIdProvider --- Sources/ElixxirDAppsSDK/Client.swift | 3 +++ .../ElixxirDAppsSDK/ClientIdProvider.swift | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/ClientIdProvider.swift diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 30ac66be..76832a86 100644 --- a/Sources/ElixxirDAppsSDK/Client.swift +++ b/Sources/ElixxirDAppsSDK/Client.swift @@ -1,6 +1,7 @@ import Bindings public struct Client { + public var getId: ClientIdProvider public var networkFollower: NetworkFollower public var waitForNetwork: NetworkWaiter public var isNetworkHealthy: NetworkHealthProvider @@ -14,6 +15,7 @@ public struct Client { extension Client { public static func live(bindingsClient: BindingsClient) -> Client { Client( + getId: .live(bindingsClient: bindingsClient), networkFollower: .live(bindingsClient: bindingsClient), waitForNetwork: .live(bindingsClient: bindingsClient), isNetworkHealthy: .live(bindingsClient: bindingsClient), @@ -29,6 +31,7 @@ extension Client { #if DEBUG extension Client { public static let failing = Client( + getId: .failing, networkFollower: .failing, waitForNetwork: .failing, isNetworkHealthy: .failing, diff --git a/Sources/ElixxirDAppsSDK/ClientIdProvider.swift b/Sources/ElixxirDAppsSDK/ClientIdProvider.swift new file mode 100644 index 00000000..259a64b2 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/ClientIdProvider.swift @@ -0,0 +1,23 @@ +import Bindings + +public struct ClientIdProvider { + public var get: () -> Int + + public func callAsFunction() -> Int { + get() + } +} + +extension ClientIdProvider { + public static func live(bindingsClient: BindingsClient) -> ClientIdProvider { + ClientIdProvider(get: bindingsClient.getID) + } +} + +#if DEBUG +extension ClientIdProvider { + public static let failing = ClientIdProvider { + fatalError("Not implemented") + } +} +#endif -- GitLab