Add repository and functions to view model
This commit is contained in:
parent
3e2ad444bd
commit
42e2d9e53d
1 changed files with 40 additions and 0 deletions
|
@ -10,4 +10,44 @@ import Foundation
|
|||
class ListViewModel: ObservableObject {
|
||||
|
||||
@Published var passwords: [Password] = []
|
||||
|
||||
private let passwordRepository: PasswordRepository
|
||||
|
||||
init(passwordRepository: PasswordRepository = KeychainPasswordRepository()) {
|
||||
self.passwordRepository = passwordRepository
|
||||
loadAllPasswords()
|
||||
}
|
||||
|
||||
func loadAllPasswords() {
|
||||
passwords = passwordRepository.getAllPasswords()
|
||||
}
|
||||
|
||||
func loadPassword(withID id: UUID) -> Password? {
|
||||
return passwordRepository.getPassword(withID: id)
|
||||
}
|
||||
|
||||
func savePassword(name: String, value: String) {
|
||||
let newPassword = Password(name: name, value: value)
|
||||
|
||||
do {
|
||||
|
||||
try passwordRepository.savePassword(newPassword)
|
||||
print ("Saved password successfully")
|
||||
loadAllPasswords()
|
||||
|
||||
} catch {
|
||||
print("Error saving password: \(error)")
|
||||
// TODO: display error to user
|
||||
}
|
||||
}
|
||||
|
||||
func deletePassword(_ password: Password) {
|
||||
do {
|
||||
try passwordRepository.deletePassword(withID: password.id)
|
||||
loadAllPasswords()
|
||||
} catch {
|
||||
print("Error deleting password: \(error)")
|
||||
// TODO: display error to user
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue