package handlers import ( "log/slog" "net/http" "github.com/CubeCraft-Creations/Extrudex/backend/internal/dtos" "github.com/CubeCraft-Creations/Extrudex/backend/internal/repositories" ) // MaterialModifierHandler handles requests for material modifier lookup data. type MaterialModifierHandler struct { repo *repositories.MaterialModifierRepository } // NewMaterialModifierHandler creates a MaterialModifierHandler with the given repository. func NewMaterialModifierHandler(repo *repositories.MaterialModifierRepository) *MaterialModifierHandler { return &MaterialModifierHandler{repo: repo} } // List handles GET /api/modifiers — returns all material modifiers. func (h *MaterialModifierHandler) List(w http.ResponseWriter, r *http.Request) { modifiers, err := h.repo.GetAll(r.Context()) if err != nil { slog.Error("failed to list modifiers", "error", err) writeJSON(w, http.StatusInternalServerError, dtos.ErrorResponse{ Error: "internal server error", Code: http.StatusInternalServerError, }) return } writeJSON(w, http.StatusOK, dtos.SingleResponse{Data: modifiers}) }