update
This commit is contained in:
47
backend/settings.go
Normal file
47
backend/settings.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (a *App) readSettings() (AppSettings, error) {
|
||||
var raw string
|
||||
err := a.db.QueryRow(`SELECT value FROM app_settings WHERE key = 'view_proof_in_view'`).Scan(&raw)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return AppSettings{ViewProofInView: false}, nil
|
||||
}
|
||||
return AppSettings{}, fmt.Errorf("read app setting view_proof_in_view: %w", err)
|
||||
}
|
||||
return AppSettings{ViewProofInView: settingBool(raw)}, nil
|
||||
}
|
||||
|
||||
func (a *App) updateViewProofInView(enabled bool) error {
|
||||
_, err := a.db.Exec(`
|
||||
INSERT INTO app_settings(key, value, updated_at)
|
||||
VALUES('view_proof_in_view', ?, CURRENT_TIMESTAMP)
|
||||
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = CURRENT_TIMESTAMP
|
||||
`, settingString(enabled))
|
||||
if err != nil {
|
||||
return fmt.Errorf("update app setting view_proof_in_view: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func settingBool(value string) bool {
|
||||
switch strings.TrimSpace(strings.ToLower(value)) {
|
||||
case "1", "true", "yes", "on":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
func settingString(value bool) string {
|
||||
if value {
|
||||
return "1"
|
||||
}
|
||||
return "0"
|
||||
}
|
||||
Reference in New Issue
Block a user