From 70badd4b7aff10d4de581b94f4aee05ea9e6bac9 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 16 Sep 2022 18:02:19 +0200 Subject: [PATCH] Add LookupUD.Params struct --- Sources/XXClient/Functions/LookupUD.swift | 39 +++++++++++++------ .../Functions/MessengerVerifyContact.swift | 12 +++--- .../MessengerVerifyContactTests.swift | 13 ++----- 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/Sources/XXClient/Functions/LookupUD.swift b/Sources/XXClient/Functions/LookupUD.swift index 0626470c..3a505bc7 100644 --- a/Sources/XXClient/Functions/LookupUD.swift +++ b/Sources/XXClient/Functions/LookupUD.swift @@ -2,30 +2,45 @@ import Bindings import XCTestDynamicOverlay public struct LookupUD { - public var run: (Int, Contact, Data, Data, UdLookupCallback) throws -> SingleUseSendReport + public struct Params: Equatable { + public init( + e2eId: Int, + udContact: Contact, + lookupId: Data, + singleRequestParamsJSON: Data = GetSingleUseParams.liveDefault() + ) { + self.e2eId = e2eId + self.udContact = udContact + self.lookupId = lookupId + self.singleRequestParamsJSON = singleRequestParamsJSON + } + + public var e2eId: Int + public var udContact: Contact + public var lookupId: Data + public var singleRequestParamsJSON: Data + } + + public var run: (Params, UdLookupCallback) throws -> SingleUseSendReport public func callAsFunction( - e2eId: Int, - udContact: Contact, - lookupId: Data, - singleRequestParamsJSON: Data = GetSingleUseParams.liveDefault(), + params: Params, callback: UdLookupCallback ) throws -> SingleUseSendReport { - try run(e2eId, udContact, lookupId, singleRequestParamsJSON, callback) + try run(params, callback) } } extension LookupUD { - public static let live = LookupUD { - e2eId, udContact, lookupId, singleRequestParamsJSON, callback in + public static let live = LookupUD { params, callback in var error: NSError? let reportData = BindingsLookupUD( - e2eId, - udContact.data, + params.e2eId, + params.udContact.data, callback.makeBindingsUdLookupCallback(), - lookupId, - singleRequestParamsJSON, + params.lookupId, + params.singleRequestParamsJSON, &error ) if let error = error { diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerVerifyContact.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerVerifyContact.swift index 7851dd1f..2a8d176b 100644 --- a/Sources/XXMessengerClient/Messenger/Functions/MessengerVerifyContact.swift +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerVerifyContact.swift @@ -30,11 +30,13 @@ extension MessengerVerifyContact { var lookupResult: Result<Contact, NSError>! let semaphore = DispatchSemaphore(value: 0) _ = try env.lookupUD( - e2eId: e2e.getId(), - udContact: try ud.getContact(), - lookupId: try contact.getId(), - singleRequestParamsJSON: env.getSingleUseParams(), - callback: .init { result in + params: LookupUD.Params( + e2eId: e2e.getId(), + udContact: try ud.getContact(), + lookupId: try contact.getId(), + singleRequestParamsJSON: env.getSingleUseParams() + ), + callback: UdLookupCallback { result in lookupResult = result semaphore.signal() } diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerVerifyContactTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerVerifyContactTests.swift index 52fed6cb..2f4e8a84 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerVerifyContactTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerVerifyContactTests.swift @@ -39,7 +39,7 @@ final class MessengerVerifyContactTests: XCTestCase { var verified: Contact var e2eId: Int } - var didLookupUDWithParams: [LookupUDParams] = [] + var didLookupUDWithParams: [LookupUD.Params] = [] var didVerifyOwnershipWithParams: [VerifyOwnershipParams] = [] var contact = Contact.unimplemented("contact-data".data(using: .utf8)!) @@ -68,13 +68,8 @@ final class MessengerVerifyContactTests: XCTestCase { return ud } env.getSingleUseParams.run = { "single-use-params".data(using: .utf8)! } - env.lookupUD.run = { e2eId, udContact, lookupId, singleRequestParamsJSON, callback in - didLookupUDWithParams.append(.init( - e2eId: e2eId, - udContact: udContact, - lookupId: lookupId, - singleRequestParamsJSON: singleRequestParamsJSON - )) + env.lookupUD.run = { params, callback in + didLookupUDWithParams.append(params) callback.handle(.success(lookedUpContact)) return SingleUseSendReport(rounds: [], roundURL: "", ephId: 0, receptionId: Data()) } @@ -117,7 +112,7 @@ final class MessengerVerifyContactTests: XCTestCase { return ud } env.getSingleUseParams.run = { "single-use-params".data(using: .utf8)! } - env.lookupUD.run = { _, _, _, _, callback in + env.lookupUD.run = { _, callback in callback.handle(.failure(lookupFailure)) return SingleUseSendReport(rounds: [], roundURL: "", ephId: 0, receptionId: Data()) } -- GitLab