Select Git revision
DependenciesProvider.swift
ContactFactsSetter.swift 906 B
import Bindings
public struct ContactFactsSetter {
public var set: (Data, [Fact]) throws -> Data
public func callAsFunction(
contact: Data,
facts: [Fact]
) throws -> Data {
try set(contact, facts)
}
}
extension ContactFactsSetter {
public static let live = ContactFactsSetter { contact, facts in
let encoder = JSONEncoder()
let factsData = try encoder.encode(facts)
var error: NSError?
let updatedContact = BindingsSetFactsOnContact(contact, factsData, &error)
if let error = error {
throw error
}
guard let updatedContact = updatedContact else {
fatalError("BindingsSetFactsOnContact returned `nil` without providing error")
}
return updatedContact
}
}
#if DEBUG
extension ContactFactsSetter {
public static let failing = ContactFactsSetter { _, _ in
struct NotImplemented: Error {}
throw NotImplemented()
}
}
#endif