From e0079d2188211f659f6a2b277f8e963842ee2237 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 8 Aug 2022 13:19:04 +0100 Subject: [PATCH] Add NewGroupChat functor --- .../Functors/NewGroupChat.swift | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/Functors/NewGroupChat.swift diff --git a/Sources/ElixxirDAppsSDK/Functors/NewGroupChat.swift b/Sources/ElixxirDAppsSDK/Functors/NewGroupChat.swift new file mode 100644 index 00000000..c5ed4559 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/Functors/NewGroupChat.swift @@ -0,0 +1,39 @@ +import Bindings +import XCTestDynamicOverlay + +public struct NewGroupChat { + public var run: (Int, GroupRequest, GroupChatProcessor) throws -> GroupChat + + public func callAsFunction( + e2eId: Int, + groupRequest: GroupRequest, + groupChatProcessor: GroupChatProcessor + ) throws -> GroupChat { + try run(e2eId, groupRequest, groupChatProcessor) + } +} + +extension NewGroupChat { + public static let live = NewGroupChat { e2eId, groupRequest, groupChatProcessor in + var error: NSError? + let bindingsGroupChat = BindingsNewGroupChat( + e2eId, + groupRequest.makeBindingsGroupRequest(), + groupChatProcessor.makeBindingsGroupChatProcessor(), + &error + ) + if let error = error { + throw error + } + guard let bindingsGroupChat = bindingsGroupChat else { + fatalError("BindingsNewGroupChat returned `nil` without providing error") + } + return .live(bindingsGroupChat) + } +} + +extension NewGroupChat { + public static let unimplemented = NewGroupChat( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab