Fix main.go menu

This commit is contained in:
Archie Fox
2025-03-14 18:33:16 +03:00
parent 6da4edff07
commit 3d40ede06d
3 changed files with 33 additions and 32 deletions

View File

@@ -13,17 +13,23 @@ func main() {
// fmt.Println(output.Sum(100, 42))
// fmt.Println(output.Sum(10.7, 3.14))
// fmt.Println(output.Sum("Hello ", "world!"))
fmt.Println("__Менеджер паролей__")
color.Blue("__Менеджер паролей__")
vault := account.NewVault(files.NewJsonDb("data.json"))
Menu:
for {
variant := getMenu()
variant := PromptData([]string{
"1. Создать аккаунт",
"2. Найти аккаунт",
"3. Удалить аккаунт",
"4. Выход",
"Выберите вариант",
})
switch variant {
case 1:
case "1":
createAccount(vault)
case 2:
case "2":
findAccount(vault)
case 3:
case "3":
deleteAccount(vault)
default:
break Menu
@@ -31,19 +37,8 @@ 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 для поиска: ")
url := PromptData([]string{"Введите URL для поиска: "})
accounts := vault.FindAccountsByUrl(url)
if len(accounts) == 0 {
color.Red("Аккаунт не найден!")
@@ -54,7 +49,7 @@ func findAccount(vault *account.VaultWithDb) {
}
func deleteAccount(vault *account.VaultWithDb) {
url := account.PromptData("Введите URL для поиска: ")
url := PromptData([]string{"Введите URL для поиска: "})
isDeleted := vault.DeleteAccountByUrl(url)
if isDeleted {
color.Green("Удалено")
@@ -64,9 +59,9 @@ func deleteAccount(vault *account.VaultWithDb) {
}
func createAccount(vault *account.VaultWithDb) {
login := account.PromptData("Введите логин: ")
password := account.PromptData("Введите пароль: ")
url := account.PromptData("Введите URL: ")
login := PromptData([]string{"Введите логин: "})
password := PromptData([]string{"Введите пароль: "})
url := PromptData([]string{"Введите URL: "})
myAccount, err := account.NewAccount(login, password, url)
if err != nil {
@@ -75,3 +70,17 @@ func createAccount(vault *account.VaultWithDb) {
}
vault.AddAccount(*myAccount)
}
// функция введения данных
func PromptData[T any](prompt []T) string {
for i, line := range prompt {
if i == len(prompt)-1 {
fmt.Printf("%v: ", line)
} else {
fmt.Println(line)
}
}
var res string
fmt.Scanln(&res)
return res
}