From ff2bca68b400755daed460575dfb67d601e53967 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 29 Aug 2022 23:47:35 +0100 Subject: [PATCH] Handle missing round results in MessageDeliveryCallback --- .../Callbacks/MessageDeliveryCallback.swift | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Sources/XXClient/Callbacks/MessageDeliveryCallback.swift b/Sources/XXClient/Callbacks/MessageDeliveryCallback.swift index 429a5bfe..4170f858 100644 --- a/Sources/XXClient/Callbacks/MessageDeliveryCallback.swift +++ b/Sources/XXClient/Callbacks/MessageDeliveryCallback.swift @@ -30,12 +30,15 @@ extension MessageDeliveryCallback { let callback: MessageDeliveryCallback func eventCallback(_ delivered: Bool, timedOut: Bool, roundResults: Data?) { - if delivered, - !timedOut, - let roundResultsData = roundResults, - let roundResults = try? JSONDecoder().decode([Int].self, from: roundResultsData) - { - callback.handle(.delivered(roundResults: roundResults)) + if delivered && !timedOut { + let roundResultsArray: [Int] + if let data = roundResults, + let array = try? JSONDecoder().decode([Int].self, from: data) { + roundResultsArray = array + } else { + roundResultsArray = [] + } + callback.handle(.delivered(roundResults: roundResultsArray)) return } @@ -48,7 +51,7 @@ extension MessageDeliveryCallback { BindingsMessageDeliveryCallback received invalid parameters: - delivered → \(delivered) - timedOut → \(timedOut) - - roundResults → \(roundResults.map { String(data: $0, encoding: .utf8) ?? "" } ?? "") + - roundResults → \(roundResults.map { String(data: $0, encoding: .utf8) ?? "\($0)" } ?? "nil") """) } } -- GitLab