diff --git a/Sources/XXClient/Functions/LookupUD.swift b/Sources/XXClient/Functions/LookupUD.swift index 0626470c4662ce0ebc7111d227d7fa1c4b4ddaad..3a505bc7ea134822568d56371f2b0bf81f244416 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 7851dd1f122204b83c9fc45c282c9ff1e4a71c37..2a8d176bffe1d156678045cf64b104df8e5210e6 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 52fed6cb730831a1cdaf6ad41d924533355e643c..2f4e8a84acdaf7d5622b51ff92437fd1fdc5e550 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()) }