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", }, }) }