Add user settings validation

This commit is contained in:
2024-09-27 14:56:43 +02:00
parent f99c93ac23
commit 3a651ce4d8
7 changed files with 105 additions and 9 deletions

View File

@@ -73,6 +73,11 @@ func DeleteFile(fs *filesystem.FileSystem) http.HandlerFunc {
}
}
var defaultSettings = models.UserSettings{
Theme: "light",
AutoSave: false,
}
func GetSettings(db *db.DB) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
userIDStr := r.URL.Query().Get("userId")
@@ -88,6 +93,8 @@ func GetSettings(db *db.DB) http.HandlerFunc {
return
}
settings.SetDefaults(defaultSettings)
json.NewEncoder(w).Encode(settings)
}
}
@@ -100,6 +107,13 @@ func UpdateSettings(db *db.DB) http.HandlerFunc {
return
}
settings.SetDefaults(defaultSettings)
if err := settings.Validate(); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
err := db.SaveSettings(settings)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)