Skip to content
Snippets Groups Projects
Commit 3c5fa1ce authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update GroupChatProcessor callback

parent 56fd4983
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!84Update Bindings
...@@ -4,7 +4,7 @@ import XCTestDynamicOverlay ...@@ -4,7 +4,7 @@ import XCTestDynamicOverlay
public struct GroupChatProcessor { public struct GroupChatProcessor {
public struct Callback: Equatable { public struct Callback: Equatable {
public init( public init(
decryptedMessage: Result<Data, NSError>, decryptedMessage: GroupChatMessage,
msg: Data, msg: Data,
receptionId: Data, receptionId: Data,
ephemeralId: Int64, ephemeralId: Int64,
...@@ -17,7 +17,7 @@ public struct GroupChatProcessor { ...@@ -17,7 +17,7 @@ public struct GroupChatProcessor {
self.roundId = roundId self.roundId = roundId
} }
public var decryptedMessage: Result<Data, NSError> public var decryptedMessage: GroupChatMessage
public var msg: Data public var msg: Data
public var receptionId: Data public var receptionId: Data
public var ephemeralId: Int64 public var ephemeralId: Int64
...@@ -26,14 +26,14 @@ public struct GroupChatProcessor { ...@@ -26,14 +26,14 @@ public struct GroupChatProcessor {
public init( public init(
name: String = "GroupChatProcessor", name: String = "GroupChatProcessor",
handle: @escaping (Callback) -> Void handle: @escaping (Result<Callback, NSError>) -> Void
) { ) {
self.name = name self.name = name
self.handle = handle self.handle = handle
} }
public var name: String public var name: String
public var handle: (Callback) -> Void public var handle: (Result<Callback, NSError>) -> Void
} }
extension GroupChatProcessor { extension GroupChatProcessor {
...@@ -60,27 +60,30 @@ extension GroupChatProcessor { ...@@ -60,27 +60,30 @@ extension GroupChatProcessor {
roundId: Int64, roundId: Int64,
err: Error? err: Error?
) { ) {
if let err = err {
callback.handle(.failure(err as NSError))
return
}
guard let decryptedMessage = decryptedMessage else {
fatalError("BindingsGroupChatProcessor received `nil` decryptedMessage")
}
guard let msg = msg else { guard let msg = msg else {
fatalError("BindingsGroupChatProcessor received `nil` msg") fatalError("BindingsGroupChatProcessor received `nil` msg")
} }
guard let receptionId = receptionId else { guard let receptionId = receptionId else {
fatalError("BindingsGroupChatProcessor received `nil` receptionId") fatalError("BindingsGroupChatProcessor received `nil` receptionId")
} }
let decryptedMessageResult: Result<Data, NSError> do {
if let err = err { callback.handle(.success(.init(
decryptedMessageResult = .failure(err as NSError) decryptedMessage: try GroupChatMessage.decode(decryptedMessage),
} else if let decryptedMessage = decryptedMessage { msg: msg,
decryptedMessageResult = .success(decryptedMessage) receptionId: receptionId,
} else { ephemeralId: ephemeralId,
fatalError("BindingsGroupChatProcessor received `nil` decryptedMessage and `nil` error") roundId: roundId
)))
} catch {
callback.handle(.failure(error as NSError))
} }
callback.handle(.init(
decryptedMessage: decryptedMessageResult,
msg: msg,
receptionId: receptionId,
ephemeralId: ephemeralId,
roundId: roundId
))
} }
func string() -> String { func string() -> String {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment