передача функции как аргумента другой функции
This commit is contained in:
@@ -21,7 +21,7 @@ type Account struct {
|
|||||||
// метод вывода пароля
|
// метод вывода пароля
|
||||||
func (acc *Account) Output() {
|
func (acc *Account) Output() {
|
||||||
c := color.New(color.FgRed, color.Italic, color.Bold)
|
c := color.New(color.FgRed, color.Italic, color.Bold)
|
||||||
c.Printf("password: %v, login: %v, URL: %v\n", acc.Password, acc.Login, acc.Url)
|
c.Printf("password: %v\nlogin: %v\nURL: %v\n", acc.Password, acc.Login, acc.Url)
|
||||||
}
|
}
|
||||||
|
|
||||||
// метод генерации пароля
|
// метод генерации пароля
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ func (vault *Vault) ToBytes() ([]byte, error) {
|
|||||||
return file, nil
|
return file, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (vault *VaultWithDb) FindAccountsByUrl(url string) []Account {
|
func (vault *VaultWithDb) FindAccounts(str string, checker func(Account, string) bool) []Account {
|
||||||
var accounts []Account
|
var accounts []Account
|
||||||
for _, account := range vault.Accounts {
|
for _, account := range vault.Accounts {
|
||||||
isMatched := strings.Contains(account.Url, url)
|
isMatched := checker(account, str)
|
||||||
if isMatched {
|
if isMatched {
|
||||||
accounts = append(accounts, account)
|
accounts = append(accounts, account)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"password/account"
|
"password/account"
|
||||||
"password/files"
|
"password/files"
|
||||||
"password/output"
|
"password/output"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/fatih/color"
|
"github.com/fatih/color"
|
||||||
)
|
)
|
||||||
@@ -49,8 +50,8 @@ Menu:
|
|||||||
}
|
}
|
||||||
|
|
||||||
func findAccount(vault *account.VaultWithDb) {
|
func findAccount(vault *account.VaultWithDb) {
|
||||||
url := PromptData([]string{"Введите URL для поиска: "})
|
url := PromptData([]string{"Введите URL для поиска"})
|
||||||
accounts := vault.FindAccountsByUrl(url)
|
accounts := vault.FindAccounts(url, checkUrl)
|
||||||
if len(accounts) == 0 {
|
if len(accounts) == 0 {
|
||||||
color.Red("Аккаунт не найден!")
|
color.Red("Аккаунт не найден!")
|
||||||
}
|
}
|
||||||
@@ -59,6 +60,10 @@ func findAccount(vault *account.VaultWithDb) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkUrl(acc account.Account, str string) bool {
|
||||||
|
return strings.Contains(acc.Url, str)
|
||||||
|
}
|
||||||
|
|
||||||
func deleteAccount(vault *account.VaultWithDb) {
|
func deleteAccount(vault *account.VaultWithDb) {
|
||||||
url := PromptData([]string{"Введите URL для поиска: "})
|
url := PromptData([]string{"Введите URL для поиска: "})
|
||||||
isDeleted := vault.DeleteAccountByUrl(url)
|
isDeleted := vault.DeleteAccountByUrl(url)
|
||||||
|
|||||||
Reference in New Issue
Block a user