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

Use Fact model in ContactFactsProvider

parent 18bc435a
No related branches found
No related tags found
1 merge request!12Use codable models in API
import Bindings import Bindings
public struct ContactFactsProvider { public struct ContactFactsProvider {
public var get: (Data) throws -> Data public var get: (Data) throws -> [Fact]
public func callAsFunction(contact: Data) throws -> Data { public func callAsFunction(contact: Data) throws -> [Fact] {
try get(contact) try get(contact)
} }
} }
...@@ -11,13 +11,15 @@ public struct ContactFactsProvider { ...@@ -11,13 +11,15 @@ public struct ContactFactsProvider {
extension ContactFactsProvider { extension ContactFactsProvider {
public static let live = ContactFactsProvider { contact in public static let live = ContactFactsProvider { contact in
var error: NSError? var error: NSError?
let facts = BindingsGetFactsFromContact(contact, &error) let factsData = BindingsGetFactsFromContact(contact, &error)
if let error = error { if let error = error {
throw error throw error
} }
guard let facts = facts else { guard let factsData = factsData else {
fatalError("BindingsGetFactsFromContact returned `nil` without providing error") fatalError("BindingsGetFactsFromContact returned `nil` without providing error")
} }
let decoder = JSONDecoder()
let facts = try decoder.decode([Fact].self, from: factsData)
return facts return facts
} }
} }
......
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