package main import ( "fmt" "password/account" "password/files" "github.com/fatih/color" ) func main() { fmt.Println("__Менеджер паролей__") vault := account.NewVault(files.NewJsonDb("data.json")) Menu: for { variant := getMenu() switch variant { case 1: createAccount(vault) case 2: findAccount(vault) case 3: deleteAccount(vault) default: break Menu } } } func getMenu() int { var variant int fmt.Println("Выберите вариант:") fmt.Println("1. Создать аккаунт") fmt.Println("2. Найти аккаунт") fmt.Println("3. Удалить аккаунт") fmt.Println("4. Выход") fmt.Scan(&variant) return variant } func findAccount(vault *account.VaultWithDb) { url := account.PromptData("Введите URL для поиска: ") accounts := vault.FindAccountsByUrl(url) if len(accounts) == 0 { color.Red("Аккаунт не найден!") } for _, account := range accounts { account.Output() } } func deleteAccount(vault *account.VaultWithDb) { url := account.PromptData("Введите URL для поиска: ") isDeleted := vault.DeleteAccountByUrl(url) if isDeleted { color.Green("Удалено") } else { color.Red("Не найдено") } } 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 или Login") return } vault.AddAccount(*myAccount) }