Add repository and functions to view model

This commit is contained in:
Markus Thielker 2025-01-16 00:23:25 +01:00
parent 3e2ad444bd
commit 42e2d9e53d
No known key found for this signature in database

View file

@ -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
}
}
}