diff --git a/Sources/XXClient/Callbacks/UdSearchCallback.swift b/Sources/XXClient/Callbacks/UdSearchCallback.swift index 87b00e0f889dbf0a27de8fb5213d45c4eb423ead..608d2425d9f8b5e60740e16116c0a2c3c5b6faef 100644 --- a/Sources/XXClient/Callbacks/UdSearchCallback.swift +++ b/Sources/XXClient/Callbacks/UdSearchCallback.swift @@ -2,11 +2,11 @@ import Bindings import XCTestDynamicOverlay public struct UdSearchCallback { - public init(handle: @escaping (Result<[UDSearchResult], NSError>) -> Void) { + public init(handle: @escaping (Result<[Contact], NSError>) -> Void) { self.handle = handle } - public var handle: (Result<[UDSearchResult], NSError>) -> Void + public var handle: (Result<[Contact], NSError>) -> Void } extension UdSearchCallback { @@ -29,15 +29,16 @@ extension UdSearchCallback { callback.handle(.failure(error as NSError)) } else if let data = contactListJSON { do { - let contacts = try JSONDecoder().decode([Data].self, from: data) - let results = try contacts.map { contact in - UDSearchResult( - id: try GetIdFromContact.live(contact), - publicKey: try GetPublicKeyFromContact.live(contact: contact), - facts: try GetFactsFromContact.live(contact: contact) + let contactsData = try JSONDecoder().decode([Data].self, from: data) + let contacts = contactsData.map { data in + Contact( + data: data, + getId: { try GetIdFromContact.live(data) }, + getPublicKey: { try GetPublicKeyFromContact.live(data) }, + getFacts: { try GetFactsFromContact.live(data) } ) } - callback.handle(.success(results)) + callback.handle(.success(contacts)) } catch { callback.handle(.failure(error as NSError)) }