Remove fiber ctx

This commit is contained in:
Eden Kirin
2024-02-06 19:31:37 +01:00
parent 8bafff716c
commit f6c4b3eb06
7 changed files with 35 additions and 40 deletions

View File

@ -1,20 +1,15 @@
package handlers
import (
"fiber-sessions/app/data"
"fiber-sessions/app/router/requests"
"fiber-sessions/app/templates"
"github.com/gofiber/fiber/v2"
)
func Home(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
func Home(request *requests.Request) error {
pc := templates.PageContext{
Title: "Welcome to the demo",
ActivePage: "home",
}
Render(ctx, templates.Home(request, pc))
Render(request.Ctx, templates.Home(request, pc))
return nil
}

View File

@ -1,11 +1,8 @@
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{
@ -13,19 +10,16 @@ var pcLogin templates.PageContext = templates.PageContext{
ActivePage: "login",
}
func Login(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
Render(ctx, templates.RenderLogin(request, pcLogin))
func Login(request *requests.Request) error {
Render(request.Ctx, templates.RenderLogin(request, pcLogin))
return nil
}
func LoginSubmit(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
func LoginSubmit(request *requests.Request) error {
content := templates.LoginFormValidationContent{
Validated: true,
Username: ctx.FormValue("username"),
Password: ctx.FormValue("password"),
Username: request.Ctx.FormValue("username"),
Password: request.Ctx.FormValue("password"),
}
hasError := false
@ -42,12 +36,12 @@ func LoginSubmit(ctx *fiber.Ctx) error {
if !hasError {
err := request.LoginUser(content.Username, content.Password)
if err == nil {
ctx.Set("HX-Location", "/")
request.Ctx.Set("HX-Location", "/")
return nil
}
content.LoginError = "Invalid username or password"
}
Render(ctx, templates.LoginFormContent(content))
Render(request.Ctx, templates.LoginFormContent(content))
return nil
}

View File

@ -1,16 +1,12 @@
package handlers
import (
"fiber-sessions/app/data"
"fiber-sessions/app/router/requests"
"github.com/gofiber/fiber/v2"
)
func Logout(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
func Logout(request *requests.Request) error {
request.Logout()
ctx.Redirect("/")
request.Ctx.Redirect("/")
return nil
}

View File

@ -1,20 +1,15 @@
package handlers
import (
"fiber-sessions/app/data"
"fiber-sessions/app/router/requests"
"fiber-sessions/app/templates"
"github.com/gofiber/fiber/v2"
)
func ProtectedPage(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
func ProtectedPage(request *requests.Request) error {
pc := templates.PageContext{
Title: "Protected page",
ActivePage: "protected-page",
}
Render(ctx, templates.ProtectedPage(request, pc))
Render(request.Ctx, templates.ProtectedPage(request, pc))
return nil
}

View File

@ -0,0 +1,5 @@
package handlers
import "fiber-sessions/app/router/requests"
type RequestHandler = func(request *requests.Request) error

View File

@ -23,7 +23,7 @@ type UserGetter interface {
}
type Request struct {
ctx *fiber.Ctx
Ctx *fiber.Ctx
session *session.Session
User *types.User
userGetter UserGetter
@ -43,7 +43,7 @@ func NewRequest(ctx *fiber.Ctx, userGetter UserGetter) *Request {
}
return &Request{
ctx: ctx,
Ctx: ctx,
session: session,
userGetter: userGetter,
User: user,

View File

@ -1,7 +1,9 @@
package router
import (
"fiber-sessions/app/data"
"fiber-sessions/app/handlers"
"fiber-sessions/app/router/requests"
"fmt"
"strings"
@ -52,12 +54,20 @@ func initLogging(app *fiber.App) {
)
}
func requestMaker(handler handlers.RequestHandler) fiber.Handler {
// wrap standard fiber handler and create request object
return func(ctx *fiber.Ctx) error {
request := requests.NewRequest(ctx, data.UsersStorage)
return handler(request)
}
}
func initRouter(app *fiber.App) {
app.Get("/", handlers.Home)
app.Get("/login", handlers.Login)
app.Post("/login", handlers.LoginSubmit)
app.Get("/logout", handlers.Logout)
app.Get("/protected-page", handlers.ProtectedPage)
app.Get("/", requestMaker(handlers.Home))
app.Get("/login", requestMaker(handlers.Login))
app.Post("/login", requestMaker(handlers.LoginSubmit))
app.Get("/logout", requestMaker(handlers.Logout))
app.Get("/protected-page", requestMaker(handlers.ProtectedPage))
app.Static("/static", STATIC_PATH)
}