43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package router
|
|
|
|
import (
|
|
"janex/admin-dashboard-backend/modules/database"
|
|
"janex/admin-dashboard-backend/modules/structs"
|
|
"janex/admin-dashboard-backend/modules/utils"
|
|
"janex/admin-dashboard-backend/routers/router/api/v1/user"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func SetupRoutes(app *fiber.App) {
|
|
v1 := app.Group("/v1")
|
|
|
|
u := v1.Group("/user")
|
|
u.Post("/auth/login", user.UserLogin)
|
|
u.Delete("/auth/logout", user.UserLogout)
|
|
u.Delete("/session/:idForDeletion", userSessionValidation, user.SignOutSession)
|
|
u.Post("/avatar", userSessionValidation, user.UpdateAvatar)
|
|
|
|
app.Static("/", "./public")
|
|
}
|
|
|
|
func userSessionValidation(c *fiber.Ctx) error {
|
|
xAuthorization := utils.GetXAuhorizationHeader(c)
|
|
|
|
if len(xAuthorization) != utils.LenHeaderXAuthorization {
|
|
return fiber.ErrUnauthorized
|
|
}
|
|
|
|
var userSession structs.UserSession
|
|
|
|
database.DB.First(&userSession, "id = ?", xAuthorization)
|
|
|
|
if len(userSession.Id) != utils.LenHeaderXAuthorization {
|
|
return fiber.ErrUnauthorized
|
|
}
|
|
|
|
c.Locals("userId", userSession.UserId)
|
|
|
|
return c.Next()
|
|
}
|