Implementation func deleted account

This commit is contained in:
Archie Fox
2025-03-09 11:39:45 +03:00
parent e28d78b932
commit 91e54c1674
2 changed files with 35 additions and 9 deletions

View File

@@ -36,12 +36,7 @@ func NewVault() *Vault {
func (vault *Vault) AddAccount(acc Account) { func (vault *Vault) AddAccount(acc Account) {
vault.Accounts = append(vault.Accounts, acc) vault.Accounts = append(vault.Accounts, acc)
vault.UpdatedAt = time.Now() vault.save()
data, err := vault.ToBytes()
if err != nil {
color.Red("Не удалось преобразовать")
}
files.FileWrite(data, "data.json")
} }
func (vault *Vault) ToBytes() ([]byte, error) { func (vault *Vault) ToBytes() ([]byte, error) {
@@ -62,3 +57,28 @@ func (vault *Vault) FindAccountsByUrl(url string) []Account {
} }
return accounts return accounts
} }
func (vault *Vault) DeleteAccountByUrl(url string) bool {
var accounts []Account
isDeleted := false
for _, account := range vault.Accounts {
isMatched := strings.Contains(account.Url, url)
if !isMatched {
accounts = append(accounts, account)
continue
}
isDeleted = true
}
vault.Accounts = accounts
vault.save()
return isDeleted
}
func (vault *Vault) save() {
vault.UpdatedAt = time.Now()
data, err := vault.ToBytes()
if err != nil {
color.Red("Не удалось преобразовать")
}
files.FileWrite(data, "data.json")
}

View File

@@ -19,7 +19,7 @@ Menu:
case 2: case 2:
findAccount(vault) findAccount(vault)
case 3: case 3:
deleteAccount() deleteAccount(vault)
default: default:
break Menu break Menu
} }
@@ -48,8 +48,14 @@ func findAccount(vault *account.Vault) {
} }
} }
func deleteAccount() { func deleteAccount(vault *account.Vault) {
url := account.PromptData("Введите URL для поиска: ")
isDeleted := vault.DeleteAccountByUrl(url)
if isDeleted {
color.Green("Удалено")
} else {
color.Red("Не найдено")
}
} }
func createAccount(vault *account.Vault) { func createAccount(vault *account.Vault) {