mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2026-02-04 02:25:30 +00:00
+FTS5 Rebuild
This commit is contained in:
78
controllers/settings_helpers.go
Normal file
78
controllers/settings_helpers.go
Normal file
@@ -0,0 +1,78 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strings"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/musenalm/helpers/functions"
|
||||
"github.com/pocketbase/pocketbase/tools/types"
|
||||
)
|
||||
|
||||
func parseSettingString(value any) (string, bool) {
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
return strings.TrimSpace(v), true
|
||||
case []byte:
|
||||
if len(v) == 0 {
|
||||
return "", false
|
||||
}
|
||||
var parsed string
|
||||
if err := json.Unmarshal(v, &parsed); err == nil {
|
||||
return strings.TrimSpace(parsed), true
|
||||
}
|
||||
return strings.TrimSpace(string(v)), true
|
||||
case json.RawMessage:
|
||||
if len(v) == 0 {
|
||||
return "", false
|
||||
}
|
||||
var parsed string
|
||||
if err := json.Unmarshal(v, &parsed); err == nil {
|
||||
return strings.TrimSpace(parsed), true
|
||||
}
|
||||
return strings.TrimSpace(string(v)), true
|
||||
default:
|
||||
return "", false
|
||||
}
|
||||
}
|
||||
|
||||
func formatSettingDateTime(value any) (string, bool) {
|
||||
if value == nil {
|
||||
return "", false
|
||||
}
|
||||
if dt, err := types.ParseDateTime(value); err == nil && !dt.IsZero() {
|
||||
return functions.GermanShortDateTime(dt), true
|
||||
}
|
||||
if raw, ok := parseSettingString(value); ok {
|
||||
clean := strings.Trim(raw, "\"")
|
||||
if dt, err := types.ParseDateTime(clean); err == nil && !dt.IsZero() {
|
||||
return functions.GermanShortDateTime(dt), true
|
||||
}
|
||||
if clean != "" {
|
||||
return clean, true
|
||||
}
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
|
||||
func parseSettingDateTime(value any) (types.DateTime, bool) {
|
||||
if value == nil {
|
||||
return types.DateTime{}, false
|
||||
}
|
||||
if dt, err := types.ParseDateTime(value); err == nil && !dt.IsZero() {
|
||||
return dt, true
|
||||
}
|
||||
if raw, ok := parseSettingString(value); ok {
|
||||
clean := strings.Trim(raw, "\"")
|
||||
if dt, err := types.ParseDateTime(clean); err == nil && !dt.IsZero() {
|
||||
return dt, true
|
||||
}
|
||||
}
|
||||
return types.DateTime{}, false
|
||||
}
|
||||
|
||||
func formatSettingGermanDateTime(value any) (string, bool) {
|
||||
if dt, ok := parseSettingDateTime(value); ok {
|
||||
return functions.GermanDate(dt) + " " + functions.GermanTime(dt), true
|
||||
}
|
||||
return "", false
|
||||
}
|
||||
Reference in New Issue
Block a user