From 0e71b28615aa9217336a3871befefa11f90fd8bf Mon Sep 17 00:00:00 2001 From: Kharec Date: Sun, 23 Nov 2025 13:43:47 +0100 Subject: [PATCH] feat: update CreateUser to use dto.RegisterRequest and update MountRoutes to apply validation middleware --- internal/handlers/user_handler.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/internal/handlers/user_handler.go b/internal/handlers/user_handler.go index e94dde5..b19f0bc 100644 --- a/internal/handlers/user_handler.go +++ b/internal/handlers/user_handler.go @@ -99,13 +99,9 @@ func (h *UserHandler) GetUser(w http.ResponseWriter, r *http.Request) { // @Failure 500 {object} UserResponse "Internal server error" // @Router /api/users [post] func (h *UserHandler) CreateUser(w http.ResponseWriter, r *http.Request) { - var req struct { - Username string `json:"username"` - Email string `json:"email"` - Password string `json:"password"` - } - - if !DecodeJSONRequest(w, r, &req) { + req, ok := GetValidatedDTO[dto.RegisterRequest](r) + if !ok { + SendErrorResponse(w, "Invalid request", http.StatusBadRequest) return } @@ -189,7 +185,7 @@ func (h *UserHandler) MountRoutes(r chi.Router, config RouteModuleConfig) { } protected.Get("/users", h.GetUsers) - protected.Post("/users", h.CreateUser) + protected.Post("/users", WithValidation[dto.RegisterRequest](config.ValidationMiddleware, h.CreateUser)) protected.Get("/users/{id}", h.GetUser) protected.Get("/users/{id}/posts", h.GetUserPosts) }