package handlers import ( "fiber-sessions/app/data" "fiber-sessions/app/router/requests" "fiber-sessions/app/templates" "github.com/gofiber/fiber/v2" ) var pcLogin templates.PageContext = templates.PageContext{ Title: "Login", ActivePage: "login", } func Login(ctx *fiber.Ctx) error { request := requests.NewRequest(ctx, data.UsersStorage) Render(ctx, templates.RenderLogin(request, pcLogin)) return nil } func LoginSubmit(ctx *fiber.Ctx) error { request := requests.NewRequest(ctx, data.UsersStorage) content := templates.LoginFormValidationContent{ Validated: true, Username: ctx.FormValue("username"), Password: ctx.FormValue("password"), } hasError := false if len(content.Username) == 0 { content.UsernameError = "Username can not be empty." hasError = true } if len(content.Password) == 0 { content.PasswordError = "Password can not be empty." hasError = true } if !hasError { err := request.LoginUser(content.Username, content.Password) if err == nil { ctx.Set("HX-Location", "/") return nil } content.LoginError = "Invalid username or password" } Render(ctx, templates.LoginFormContent(content)) return nil }