From ada1bf9d3de4ae110e59de3eb4ddb9543a17e8e6 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Wed, 19 Oct 2022 10:57:23 +0200 Subject: [PATCH] Add ReceiveFileHandler --- .../ReceiveFileHandler.swift | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift diff --git a/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift b/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift new file mode 100644 index 00000000..92c266da --- /dev/null +++ b/Examples/xx-messenger/Sources/AppCore/ReceiveFileHandler/ReceiveFileHandler.swift @@ -0,0 +1,38 @@ +import XCTestDynamicOverlay +import XXClient +import XXMessengerClient + +public struct ReceiveFileHandler { + public typealias OnError = (Error) -> Void + + public var run: (@escaping OnError) -> Cancellable + + public func callAsFunction(onError: @escaping OnError) -> Cancellable { + run(onError) + } +} + +extension ReceiveFileHandler { + public static func live( + messenger: Messenger + ) -> ReceiveFileHandler { + ReceiveFileHandler { onError in + messenger.registerReceiveFileCallback(.init { result in + switch result { + case .success(let file): + // TODO: + break + + case .failure(let error): + onError(error) + } + }) + } + } +} + +extension ReceiveFileHandler { + public static let unimplemented = ReceiveFileHandler( + run: XCTUnimplemented("\(Self.self)", placeholder: Cancellable {}) + ) +} -- GitLab