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

Use MakeContact in UdSearchCallback

parent bb6ac412
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!42Update Bindings
...@@ -16,13 +16,20 @@ extension UdSearchCallback { ...@@ -16,13 +16,20 @@ extension UdSearchCallback {
} }
extension UdSearchCallback { extension UdSearchCallback {
func makeBindingsUdSearchCallback() -> BindingsUdSearchCallbackProtocol { func makeBindingsUdSearchCallback(
makeContact: MakeContact = .live()
) -> BindingsUdSearchCallbackProtocol {
class CallbackObject: NSObject, BindingsUdSearchCallbackProtocol { class CallbackObject: NSObject, BindingsUdSearchCallbackProtocol {
init(_ callback: UdSearchCallback) { init(
callback: UdSearchCallback,
makeContact: MakeContact
) {
self.callback = callback self.callback = callback
self.makeContact = makeContact
} }
let callback: UdSearchCallback let callback: UdSearchCallback
let makeContact: MakeContact
func callback(_ contactListJSON: Data?, err: Error?) { func callback(_ contactListJSON: Data?, err: Error?) {
if let error = err { if let error = err {
...@@ -30,14 +37,7 @@ extension UdSearchCallback { ...@@ -30,14 +37,7 @@ extension UdSearchCallback {
} else if let data = contactListJSON { } else if let data = contactListJSON {
do { do {
let contactsData = try JSONDecoder().decode([Data].self, from: data) let contactsData = try JSONDecoder().decode([Data].self, from: data)
let contacts = contactsData.map { data in let contacts: [Contact] = contactsData.map { makeContact($0) }
Contact(
data: data,
getId: { try GetIdFromContact.live(data) },
getPublicKey: { try GetPublicKeyFromContact.live(data) },
getFacts: { try GetFactsFromContact.live(data) }
)
}
callback.handle(.success(contacts)) callback.handle(.success(contacts))
} catch { } catch {
callback.handle(.failure(error as NSError)) callback.handle(.failure(error as NSError))
...@@ -48,6 +48,9 @@ extension UdSearchCallback { ...@@ -48,6 +48,9 @@ extension UdSearchCallback {
} }
} }
return CallbackObject(self) return CallbackObject(
callback: self,
makeContact: makeContact
)
} }
} }
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