Remove fiber ctx
This commit is contained in:
@ -1,20 +1,15 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fiber-sessions/app/data"
|
|
||||||
"fiber-sessions/app/router/requests"
|
"fiber-sessions/app/router/requests"
|
||||||
"fiber-sessions/app/templates"
|
"fiber-sessions/app/templates"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Home(ctx *fiber.Ctx) error {
|
func Home(request *requests.Request) error {
|
||||||
request := requests.NewRequest(ctx, data.UsersStorage)
|
|
||||||
|
|
||||||
pc := templates.PageContext{
|
pc := templates.PageContext{
|
||||||
Title: "Welcome to the demo",
|
Title: "Welcome to the demo",
|
||||||
ActivePage: "home",
|
ActivePage: "home",
|
||||||
}
|
}
|
||||||
Render(ctx, templates.Home(request, pc))
|
Render(request.Ctx, templates.Home(request, pc))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,8 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fiber-sessions/app/data"
|
|
||||||
"fiber-sessions/app/router/requests"
|
"fiber-sessions/app/router/requests"
|
||||||
"fiber-sessions/app/templates"
|
"fiber-sessions/app/templates"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var pcLogin templates.PageContext = templates.PageContext{
|
var pcLogin templates.PageContext = templates.PageContext{
|
||||||
@ -13,19 +10,16 @@ var pcLogin templates.PageContext = templates.PageContext{
|
|||||||
ActivePage: "login",
|
ActivePage: "login",
|
||||||
}
|
}
|
||||||
|
|
||||||
func Login(ctx *fiber.Ctx) error {
|
func Login(request *requests.Request) error {
|
||||||
request := requests.NewRequest(ctx, data.UsersStorage)
|
Render(request.Ctx, templates.RenderLogin(request, pcLogin))
|
||||||
Render(ctx, templates.RenderLogin(request, pcLogin))
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoginSubmit(ctx *fiber.Ctx) error {
|
func LoginSubmit(request *requests.Request) error {
|
||||||
request := requests.NewRequest(ctx, data.UsersStorage)
|
|
||||||
|
|
||||||
content := templates.LoginFormValidationContent{
|
content := templates.LoginFormValidationContent{
|
||||||
Validated: true,
|
Validated: true,
|
||||||
Username: ctx.FormValue("username"),
|
Username: request.Ctx.FormValue("username"),
|
||||||
Password: ctx.FormValue("password"),
|
Password: request.Ctx.FormValue("password"),
|
||||||
}
|
}
|
||||||
hasError := false
|
hasError := false
|
||||||
|
|
||||||
@ -42,12 +36,12 @@ func LoginSubmit(ctx *fiber.Ctx) error {
|
|||||||
if !hasError {
|
if !hasError {
|
||||||
err := request.LoginUser(content.Username, content.Password)
|
err := request.LoginUser(content.Username, content.Password)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
ctx.Set("HX-Location", "/")
|
request.Ctx.Set("HX-Location", "/")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
content.LoginError = "Invalid username or password"
|
content.LoginError = "Invalid username or password"
|
||||||
}
|
}
|
||||||
|
|
||||||
Render(ctx, templates.LoginFormContent(content))
|
Render(request.Ctx, templates.LoginFormContent(content))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,16 +1,12 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fiber-sessions/app/data"
|
|
||||||
"fiber-sessions/app/router/requests"
|
"fiber-sessions/app/router/requests"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Logout(ctx *fiber.Ctx) error {
|
func Logout(request *requests.Request) error {
|
||||||
request := requests.NewRequest(ctx, data.UsersStorage)
|
|
||||||
request.Logout()
|
request.Logout()
|
||||||
|
|
||||||
ctx.Redirect("/")
|
request.Ctx.Redirect("/")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,15 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fiber-sessions/app/data"
|
|
||||||
"fiber-sessions/app/router/requests"
|
"fiber-sessions/app/router/requests"
|
||||||
"fiber-sessions/app/templates"
|
"fiber-sessions/app/templates"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func ProtectedPage(ctx *fiber.Ctx) error {
|
func ProtectedPage(request *requests.Request) error {
|
||||||
request := requests.NewRequest(ctx, data.UsersStorage)
|
|
||||||
|
|
||||||
pc := templates.PageContext{
|
pc := templates.PageContext{
|
||||||
Title: "Protected page",
|
Title: "Protected page",
|
||||||
ActivePage: "protected-page",
|
ActivePage: "protected-page",
|
||||||
}
|
}
|
||||||
Render(ctx, templates.ProtectedPage(request, pc))
|
Render(request.Ctx, templates.ProtectedPage(request, pc))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
5
app/handlers/requesthandler.go
Normal file
5
app/handlers/requesthandler.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package handlers
|
||||||
|
|
||||||
|
import "fiber-sessions/app/router/requests"
|
||||||
|
|
||||||
|
type RequestHandler = func(request *requests.Request) error
|
||||||
@ -23,7 +23,7 @@ type UserGetter interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Request struct {
|
type Request struct {
|
||||||
ctx *fiber.Ctx
|
Ctx *fiber.Ctx
|
||||||
session *session.Session
|
session *session.Session
|
||||||
User *types.User
|
User *types.User
|
||||||
userGetter UserGetter
|
userGetter UserGetter
|
||||||
@ -43,7 +43,7 @@ func NewRequest(ctx *fiber.Ctx, userGetter UserGetter) *Request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return &Request{
|
return &Request{
|
||||||
ctx: ctx,
|
Ctx: ctx,
|
||||||
session: session,
|
session: session,
|
||||||
userGetter: userGetter,
|
userGetter: userGetter,
|
||||||
User: user,
|
User: user,
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package router
|
package router
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fiber-sessions/app/data"
|
||||||
"fiber-sessions/app/handlers"
|
"fiber-sessions/app/handlers"
|
||||||
|
"fiber-sessions/app/router/requests"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"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) {
|
func initRouter(app *fiber.App) {
|
||||||
app.Get("/", handlers.Home)
|
app.Get("/", requestMaker(handlers.Home))
|
||||||
app.Get("/login", handlers.Login)
|
app.Get("/login", requestMaker(handlers.Login))
|
||||||
app.Post("/login", handlers.LoginSubmit)
|
app.Post("/login", requestMaker(handlers.LoginSubmit))
|
||||||
app.Get("/logout", handlers.Logout)
|
app.Get("/logout", requestMaker(handlers.Logout))
|
||||||
app.Get("/protected-page", handlers.ProtectedPage)
|
app.Get("/protected-page", requestMaker(handlers.ProtectedPage))
|
||||||
|
|
||||||
app.Static("/static", STATIC_PATH)
|
app.Static("/static", STATIC_PATH)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user