From 28ed7379de8f3f49d0bfce550750ab4084322649 Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L de Mello" Date: Fri, 30 May 2025 18:05:40 -0300 Subject: [PATCH] feat: user controller --- router/users.go | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 router/users.go diff --git a/router/users.go b/router/users.go new file mode 100644 index 0000000..faa224f --- /dev/null +++ b/router/users.go @@ -0,0 +1,47 @@ +package router + +import ( + "errors" + "net/http" + + "forge.capytal.company/capytalcode/project-comicverse/service" + "forge.capytal.company/capytalcode/project-comicverse/templates" + "forge.capytal.company/loreddev/x/smalltrip/exception" + "forge.capytal.company/loreddev/x/tinyssert" +) + +type userController struct { + assert tinyssert.Assertions + templates templates.ITemplate + service *service.UserService +} + +func (c userController) login(w http.ResponseWriter, r *http.Request) { + c.assert.NotNil(c.templates) + c.assert.NotNil(c.service) + + if r.Method == http.MethodGet { + err := c.templates.ExecuteTemplate(w, "login", nil) + if err != nil { + exception.InternalServerError(err).ServeHTTP(w, r) + } + return + } + if r.Method != http.MethodPost { + exception.MethodNotAllowed([]string{http.MethodGet, http.MethodPost}). + ServeHTTP(w, r) + return + } + + user, passwd := r.FormValue("username"), r.FormValue("password") + if user == "" { + exception.BadRequest(errors.New(`missing "user" form value`)).ServeHTTP(w, r) + return + } + if passwd == "" { + exception.BadRequest(errors.New(`missing "password" form value`)).ServeHTTP(w, r) + return + } + + c.service.Login(user, passwd) +}