From 04d241f266bb39a5b65e54d9924887571d625b96 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 7 Jun 2022 11:35:30 +0200 Subject: [PATCH] Use Message model in MessageListener --- Sources/ElixxirDAppsSDK/MessageListener.swift | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Sources/ElixxirDAppsSDK/MessageListener.swift b/Sources/ElixxirDAppsSDK/MessageListener.swift index bed6b8c1..dc2bfd1c 100644 --- a/Sources/ElixxirDAppsSDK/MessageListener.swift +++ b/Sources/ElixxirDAppsSDK/MessageListener.swift @@ -1,12 +1,12 @@ import Bindings public struct MessageListener { - public var listen: (Int, String, @escaping (Data) -> Void) -> Void + public var listen: (Int, String, @escaping (Message) -> Void) -> Void public func callAsFunction( messageType: Int, listenerName: String = "MessageListener", - callback: @escaping (Data) -> Void + callback: @escaping (Message) -> Void ) { listen(messageType, listenerName, callback) } @@ -39,18 +39,25 @@ extension MessageListener { } private class Listener: NSObject, BindingsListenerProtocol { - init(listenerName: String, onHear: @escaping (Data) -> Void) { + init(listenerName: String, onHear: @escaping (Message) -> Void) { self.listenerName = listenerName self.onHear = onHear super.init() } let listenerName: String - let onHear: (Data) -> Void + let onHear: (Message) -> Void + let decoder = JSONDecoder() func hear(_ item: Data?) { - guard let item = item else { return } - onHear(item) + guard let item = item else { + fatalError("BindingsListenerProtocol.hear received `nil`") + } + do { + onHear(try decoder.decode(Message.self, from: item)) + } catch { + fatalError("Message decoding failed with error: \(error)") + } } func name() -> String { -- GitLab