This commit is contained in:
2026-04-01 11:47:03 +04:00
parent cb68451c1c
commit 2465bc2ec3
43 changed files with 8210 additions and 0 deletions

47
backend/settings.go Normal file
View 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"
}