Files
Work/Backend/internal/httpx/api_settings_routes.go
T
2026-07-06 17:02:40 +01:00

44 lines
1006 B
Go

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