From da79f0fa1dff4f31f0f824751db096ab04b119cb Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 28 Jul 2022 22:04:02 +0100 Subject: [PATCH] Add NewUdManagerFromBackup functor --- .../Functors/NewUdManagerFromBackup.swift | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/Functors/NewUdManagerFromBackup.swift diff --git a/Sources/ElixxirDAppsSDK/Functors/NewUdManagerFromBackup.swift b/Sources/ElixxirDAppsSDK/Functors/NewUdManagerFromBackup.swift new file mode 100644 index 00000000..a167a084 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/Functors/NewUdManagerFromBackup.swift @@ -0,0 +1,43 @@ +import Bindings +import XCTestDynamicOverlay + +public struct NewUdManagerFromBackup { + public var run: (Int, UdNetworkStatus, Fact, Fact) throws -> UserDiscovery + + public func callAsFunction( + e2eId: Int, + follower: UdNetworkStatus, + email: Fact, + phone: Fact + ) throws -> UserDiscovery { + try run(e2eId, follower, email, phone) + } +} + +extension NewUdManagerFromBackup { + public static let live = NewUdManagerFromBackup { + e2eId, follower, email, phone in + + var error: NSError? + let bindingsUD = BindingsNewUdManagerFromBackup( + e2eId, + follower.makeBindingsUdNetworkStatus(), + try email.encode(), + try phone.encode(), + &error + ) + if let error = error { + throw error + } + guard let bindingsUD = bindingsUD else { + fatalError("BindingsNewUdManagerFromBackup returned `nil` without providing error") + } + return .live(bindingsUD) + } +} + +extension NewUdManagerFromBackup { + public static let unimplemented = NewUdManagerFromBackup( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab