Skip to content
Snippets Groups Projects

Restore contacts from backup

2 files
+ 19
149
Compare changes
  • Side-by-side
  • Inline

Files

@@ -140,29 +140,13 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm
@@ -140,29 +140,13 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm
phone: facts.get(.phone)?.value,
phone: facts.get(.phone)?.value,
createdAt: env.now()
createdAt: env.now()
))
))
let lookupResult = try env.messenger.lookupContacts.callAsFunction(
try result.restoredContacts.forEach { contactId in
ids: result.restoredContacts
if try env.db().fetchContacts(.init(id: [contactId])).isEmpty {
)
try env.db().saveContact(Contact(
try lookupResult.contacts.forEach { contact in
id: contactId,
let facts = try contact.getFacts()
createdAt: env.now()
try env.db().saveContact(XXModels.Contact(
))
id: try contact.getId(),
marshaled: contact.data,
username: facts.get(.username)?.value,
email: facts.get(.email)?.value,
phone: facts.get(.phone)?.value,
authStatus: .friend,
createdAt: env.now()
))
}
guard lookupResult.errors.isEmpty else {
var errors = lookupResult.errors
do {
try env.messenger.destroy()
} catch {
errors.append(error as NSError)
}
}
return .success(.failed(errors))
}
}
return .success(.finished)
return .success(.finished)
} catch {
} catch {
Loading