From 0515ecb1baf1f8cf64cf623f87fc70cf66bc3e2c Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 28 Jul 2022 21:46:42 +0100 Subject: [PATCH] Wrap UserDiscovery --- .../Functors/UserDiscoveryConfirmFact.swift | 25 ++++++++++++ .../Functors/UserDiscoveryGetContact.swift | 23 +++++++++++ .../Functors/UserDiscoveryGetFacts.swift | 27 +++++++++++++ .../Functors/UserDiscoveryGetId.swift | 23 +++++++++++ .../UserDiscoveryPermanentDeleteAccount.swift | 24 +++++++++++ .../Functors/UserDiscoveryRemoveFact.swift | 24 +++++++++++ .../UserDiscoverySendRegisterFact.swift | 29 ++++++++++++++ .../UserDiscoverySetAlternative.swift | 33 +++++++++++++++ .../UserDiscovery/UserDiscovery.swift | 40 +++++++++++++++++++ 9 files changed, 248 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryConfirmFact.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetContact.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetFacts.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetId.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryPermanentDeleteAccount.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryRemoveFact.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySendRegisterFact.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySetAlternative.swift create mode 100644 Sources/ElixxirDAppsSDK/UserDiscovery/UserDiscovery.swift diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryConfirmFact.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryConfirmFact.swift new file mode 100644 index 00000000..cad19c79 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryConfirmFact.swift @@ -0,0 +1,25 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryConfirmFact { + public var run: (String, String) throws -> Void + + public func callAsFunction( + confirmationId: String, + code: String + ) throws { + try run(confirmationId, code) + } +} + +extension UserDiscoveryConfirmFact { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryConfirmFact { + UserDiscoveryConfirmFact(run: bindingsUD.confirmFact(_:code:)) + } +} + +extension UserDiscoveryConfirmFact { + public static let unimplemented = UserDiscoveryConfirmFact( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetContact.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetContact.swift new file mode 100644 index 00000000..19d7fb76 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetContact.swift @@ -0,0 +1,23 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryGetContact { + public var run: () throws -> Data + + public func callAsFunction() throws -> Data { + try run() + } +} + +extension UserDiscoveryGetContact { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryGetContact { + UserDiscoveryGetContact(run: bindingsUD.getContact) + } +} + +extension UserDiscoveryGetContact { + public static let unimplemented = UserDiscoveryGetContact( + run: XCTUnimplemented("\(Self.self)") + ) +} + diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetFacts.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetFacts.swift new file mode 100644 index 00000000..a6029083 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetFacts.swift @@ -0,0 +1,27 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryGetFacts { + public var run: () throws -> [Fact] + + public func callAsFunction() throws -> [Fact] { + try run() + } +} + +extension UserDiscoveryGetFacts { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryGetFacts { + UserDiscoveryGetFacts { + guard let data = bindingsUD.getFacts() else { + fatalError("BindingsUserDiscovery.getFacts returned `nil`") + } + return try [Fact].decode(data) + } + } +} + +extension UserDiscoveryGetFacts { + public static let unimplemented = UserDiscoveryGetFacts( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetId.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetId.swift new file mode 100644 index 00000000..77de9ad9 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryGetId.swift @@ -0,0 +1,23 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryGetId { + public var run: () -> Int + + public func callAsFunction() -> Int { + run() + } +} + +extension UserDiscoveryGetId { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryGetId { + UserDiscoveryGetId(run: bindingsUD.getID) + } +} + +extension UserDiscoveryGetId { + public static let unimplemented = UserDiscoveryGetId( + run: XCTUnimplemented("\(Self.self)") + ) +} + diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryPermanentDeleteAccount.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryPermanentDeleteAccount.swift new file mode 100644 index 00000000..3f570e1e --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryPermanentDeleteAccount.swift @@ -0,0 +1,24 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryPermanentDeleteAccount { + public var run: (Fact) throws -> Void + + public func callAsFunction(_ fact: Fact) throws { + try run(fact) + } +} + +extension UserDiscoveryPermanentDeleteAccount { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryPermanentDeleteAccount { + UserDiscoveryPermanentDeleteAccount { fact in + try bindingsUD.permanentDeleteAccount(fact.encode()) + } + } +} + +extension UserDiscoveryPermanentDeleteAccount { + public static let unimplemented = UserDiscoveryPermanentDeleteAccount( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryRemoveFact.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryRemoveFact.swift new file mode 100644 index 00000000..3996ba44 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoveryRemoveFact.swift @@ -0,0 +1,24 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoveryRemoveFact { + public var run: (Fact) throws -> Void + + public func callAsFunction(_ fact: Fact) throws { + try run(fact) + } +} + +extension UserDiscoveryRemoveFact { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoveryRemoveFact { + UserDiscoveryRemoveFact { fact in + try bindingsUD.removeFact(fact.encode()) + } + } +} + +extension UserDiscoveryRemoveFact { + public static let unimplemented = UserDiscoveryRemoveFact( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySendRegisterFact.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySendRegisterFact.swift new file mode 100644 index 00000000..78c9a77f --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySendRegisterFact.swift @@ -0,0 +1,29 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoverySendRegisterFact { + public var run: (Fact) throws -> String + + public func callAsFunction(_ fact: Fact) throws -> String { + try run(fact) + } +} + +extension UserDiscoverySendRegisterFact { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoverySendRegisterFact { + UserDiscoverySendRegisterFact { fact in + var error: NSError? + let confirmationId = bindingsUD.sendRegisterFact(try fact.encode(), error: &error) + if let error = error { + throw error + } + return confirmationId + } + } +} + +extension UserDiscoverySendRegisterFact { + public static let unimplemented = UserDiscoverySendRegisterFact( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySetAlternative.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySetAlternative.swift new file mode 100644 index 00000000..731518eb --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/Functors/UserDiscoverySetAlternative.swift @@ -0,0 +1,33 @@ +import Bindings +import XCTestDynamicOverlay + +public struct UserDiscoverySetAlternative { + public var run: (UserDiscoveryConfig?) throws -> Void + + public func callAsFunction(_ config: UserDiscoveryConfig?) throws { + try run(config) + } +} + +extension UserDiscoverySetAlternative { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscoverySetAlternative { + UserDiscoverySetAlternative { config in + if let config = config { + try bindingsUD.setAlternative( + config.cert, + altAddress: config.address, + contactFile: config.contact + ) + } else { + try bindingsUD.unsetAlternativeUserDiscovery() + } + } + } +} + +extension UserDiscoverySetAlternative { + public static let unimplemented = UserDiscoverySetAlternative( + run: XCTUnimplemented("\(Self.self)") + ) +} + diff --git a/Sources/ElixxirDAppsSDK/UserDiscovery/UserDiscovery.swift b/Sources/ElixxirDAppsSDK/UserDiscovery/UserDiscovery.swift new file mode 100644 index 00000000..a0935d81 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/UserDiscovery/UserDiscovery.swift @@ -0,0 +1,40 @@ +import Bindings + +public struct UserDiscovery { + public var setAlternative: UserDiscoverySetAlternative + public var getId: UserDiscoveryGetId + public var getContact: UserDiscoveryGetContact + public var getFacts: UserDiscoveryGetFacts + public var sendRegisterFact: UserDiscoverySendRegisterFact + public var confirmFact: UserDiscoveryConfirmFact + public var removeFact: UserDiscoveryRemoveFact + public var permanentDeleteAccount: UserDiscoveryPermanentDeleteAccount +} + +extension UserDiscovery { + public static func live(_ bindingsUD: BindingsUserDiscovery) -> UserDiscovery { + UserDiscovery( + setAlternative: .live(bindingsUD), + getId: .live(bindingsUD), + getContact: .live(bindingsUD), + getFacts: .live(bindingsUD), + sendRegisterFact: .live(bindingsUD), + confirmFact: .live(bindingsUD), + removeFact: .live(bindingsUD), + permanentDeleteAccount: .live(bindingsUD) + ) + } +} + +extension UserDiscovery { + public static let unimplemented = UserDiscovery( + setAlternative: .unimplemented, + getId: .unimplemented, + getContact: .unimplemented, + getFacts: .unimplemented, + sendRegisterFact: .unimplemented, + confirmFact: .unimplemented, + removeFact: .unimplemented, + permanentDeleteAccount: .unimplemented + ) +} -- GitLab