mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-20 01:32:33 +02:00
e8e64eff12
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package db
|
|
|
|
func (d *DB) SaveScope(whitelist, blacklist []string) error {
|
|
tx, err := d.conn.Begin()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if _, err := tx.Exec(`DELETE FROM scope`); err != nil {
|
|
tx.Rollback()
|
|
return err
|
|
}
|
|
for _, p := range whitelist {
|
|
if _, err := tx.Exec(`INSERT INTO scope (kind, pattern) VALUES ('whitelist', ?)`, p); err != nil {
|
|
tx.Rollback()
|
|
return err
|
|
}
|
|
}
|
|
for _, p := range blacklist {
|
|
if _, err := tx.Exec(`INSERT INTO scope (kind, pattern) VALUES ('blacklist', ?)`, p); err != nil {
|
|
tx.Rollback()
|
|
return err
|
|
}
|
|
}
|
|
return tx.Commit()
|
|
}
|
|
|
|
func (d *DB) LoadScope() (whitelist, blacklist []string, err error) {
|
|
rows, err := d.conn.Query(`SELECT kind, pattern FROM scope`)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
defer rows.Close()
|
|
for rows.Next() {
|
|
var kind, pattern string
|
|
if err := rows.Scan(&kind, &pattern); err != nil {
|
|
return nil, nil, err
|
|
}
|
|
if kind == "whitelist" {
|
|
whitelist = append(whitelist, pattern)
|
|
} else {
|
|
blacklist = append(blacklist, pattern)
|
|
}
|
|
}
|
|
return whitelist, blacklist, rows.Err()
|
|
}
|