ContactTrickProvider.swift 868 B

1234567891011121314151617181920212223242526
  1. import Combine
  2. import Foundation
  3. extension ContactTrick {
  4. final class Provider: BaseProvider, ContactTrickProvider {
  5. private let processQueue = DispatchQueue(label: "ContactTrickProvider.processQueue")
  6. var contacts: [ContactTrickEntry] {
  7. contactTrickManager.currentContacts
  8. }
  9. func saveContacts(_ contacts: [ContactTrickEntry]) -> AnyPublisher<[ContactTrickEntry], Error> {
  10. Future { promise in
  11. self.contactTrickManager.updateContacts(contacts: contacts) { result in
  12. switch result {
  13. case let .success(updated):
  14. promise(.success(updated))
  15. case let .failure(error):
  16. promise(.failure(error))
  17. }
  18. }
  19. }.eraseToAnyPublisher()
  20. }
  21. }
  22. }