Add func find on Login

This commit is contained in:
Archer Fox
2025-03-16 23:52:59 +03:00
parent 4b10367196
commit e6340bd24f
2 changed files with 28 additions and 10 deletions

View File

@@ -12,8 +12,9 @@ import (
var menu = map[string]func(*account.VaultWithDb){
"1": createAccount,
"2": findAccount,
"3": deleteAccount,
"2": findAccountByUrl,
"3": findAccountByLogin,
"4": deleteAccount,
}
func main() {
@@ -26,9 +27,10 @@ Menu:
for {
variant := PromptData([]string{
"1. Создать аккаунт",
"2. Найти аккаунт",
"3. Удалить аккаунт",
"4. Выход",
"2. Найти аккаунт по URL",
"3. Найти аккаунт по логину",
"4. Удалить аккаунт",
"5. Выход",
"Выберите вариант",
})
menuFunc := menu[variant]
@@ -49,16 +51,29 @@ Menu:
}
}
func findAccount(vault *account.VaultWithDb) {
func findAccountByUrl(vault *account.VaultWithDb) {
url := PromptData([]string{"Введите URL для поиска"})
// Анонимная функция как параметр
accounts := vault.FindAccounts(url, func(acc account.Account, str string) bool {
return strings.Contains(acc.Url, str)
})
if len(accounts) == 0 {
outputResults(&accounts)
}
func findAccountByLogin(vault *account.VaultWithDb) {
login := PromptData([]string{"Введите Login для поиска"})
// Анонимная функция как параметр
accounts := vault.FindAccounts(login, func(acc account.Account, str string) bool {
return strings.Contains(acc.Login, str)
})
outputResults(&accounts)
}
func outputResults(accounts *[]account.Account) {
if len(*accounts) == 0 {
color.Red("Аккаунт не найден!")
}
for _, account := range accounts {
for _, account := range *accounts {
account.Output()
}
}