Add dependency injection

This commit is contained in:
Archer Fox
2025-03-10 22:20:06 +03:00
parent 91e54c1674
commit 699be23766
3 changed files with 55 additions and 31 deletions

View File

@@ -3,13 +3,14 @@ package main
import (
"fmt"
"password/account"
"password/files"
"github.com/fatih/color"
)
func main() {
fmt.Println("__Менеджер паролей__")
vault := account.NewVault()
vault := account.NewVault(files.NewJsonDb("data.json"))
Menu:
for {
variant := getMenu()
@@ -37,7 +38,7 @@ func getMenu() int {
return variant
}
func findAccount(vault *account.Vault) {
func findAccount(vault *account.VaultWithDb) {
url := account.PromptData("Введите URL для поиска: ")
accounts := vault.FindAccountsByUrl(url)
if len(accounts) == 0 {
@@ -48,7 +49,7 @@ func findAccount(vault *account.Vault) {
}
}
func deleteAccount(vault *account.Vault) {
func deleteAccount(vault *account.VaultWithDb) {
url := account.PromptData("Введите URL для поиска: ")
isDeleted := vault.DeleteAccountByUrl(url)
if isDeleted {
@@ -58,16 +59,15 @@ func deleteAccount(vault *account.Vault) {
}
}
func createAccount(vault *account.Vault) {
func createAccount(vault *account.VaultWithDb) {
login := account.PromptData("Введите логин: ")
password := account.PromptData("Введите пароль: ")
url := account.PromptData("Введите URL: ")
myAccount, err := account.NewAccount(login, password, url)
if err != nil {
fmt.Println("ОШИБКА: Неверный формат URL")
fmt.Println("ОШИБКА: Неверный формат URL или Login")
return
}
vault = account.NewVault()
vault.AddAccount(*myAccount)
}