Feat: add persisted account theme settings
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package httpx
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
bootstrapservice "moku-backend/internal/bootstrap"
|
||||
)
|
||||
|
||||
type saveThemePresetRequest struct {
|
||||
PresetID string `json:"presetId"`
|
||||
}
|
||||
|
||||
func (routes apiRoutes) handleSaveThemePreset(w http.ResponseWriter, r *http.Request) {
|
||||
payload, ok := decodeBootstrapRequest[saveThemePresetRequest](w, r)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
payload.PresetID = strings.TrimSpace(payload.PresetID)
|
||||
if payload.PresetID == "" {
|
||||
WriteError(w, http.StatusBadRequest, RequestIDFromContext(r.Context()), "invalid_request", "Theme preset ID is required.")
|
||||
return
|
||||
}
|
||||
|
||||
admin, err := routes.bootstrapService().SaveThemePreset(r.Context(), bootstrapservice.SaveThemePresetInput{
|
||||
PresetID: payload.PresetID,
|
||||
})
|
||||
if err != nil {
|
||||
routes.writeBootstrapPersistenceError(w, r, err)
|
||||
return
|
||||
}
|
||||
|
||||
WriteJSON(w, http.StatusOK, map[string]any{
|
||||
"data": map[string]any{
|
||||
"presetId": payload.PresetID,
|
||||
"admin": admin,
|
||||
},
|
||||
"meta": map[string]any{
|
||||
"resource": "settings-theme",
|
||||
},
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user