refactor(router): update routes and middleware for Echo v5
Update all router files to use Echo v5 APIs and type signatures. Changes in router.go: - Replace echomiddleware.Logger() with RequestLogger() (line 144) - Update import from echo/v4 to echo/v5 Changes in frontend.go: - Update frontend handler signatures to use *echo.Context - Fix middleware registration for v5 compatibility Changes in auth.go, library.go, scanner.go, sync.go, helpers.go: - Update handler function signatures to *echo.Context - Ensure consistent type usage across all route handlers All routes now properly implement Echo v5's middleware and handler patterns.
This commit is contained in:
+10
-10
@@ -21,9 +21,9 @@ import (
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/google/uuid"
|
||||
"github.com/jackc/pgx/v5/pgtype"
|
||||
echojwt "github.com/labstack/echo-jwt/v4"
|
||||
"github.com/labstack/echo/v4"
|
||||
echomiddleware "github.com/labstack/echo/v4/middleware"
|
||||
echojwt "github.com/labstack/echo-jwt/v5"
|
||||
"github.com/labstack/echo/v5"
|
||||
echomiddleware "github.com/labstack/echo/v5/middleware"
|
||||
)
|
||||
|
||||
// CustomValidator wraps the go-playground validator
|
||||
@@ -71,7 +71,7 @@ func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc {
|
||||
SigningKey: []byte(cfg.Cfg.JWTSecret),
|
||||
ContextKey: "user",
|
||||
TokenLookup: "cookie:token,header:Authorization:Bearer ",
|
||||
SuccessHandler: func(c echo.Context) {
|
||||
SuccessHandler: func(c *echo.Context) error {
|
||||
token := c.Get("user").(*jwt.Token)
|
||||
claims := token.Claims.(jwt.MapClaims)
|
||||
c.Set("user_id", claims["user_id"])
|
||||
@@ -83,8 +83,7 @@ func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc {
|
||||
userIDStr, _ := claims["user_id"].(string)
|
||||
userUUID, err := uuid.Parse(userIDStr)
|
||||
if err != nil {
|
||||
c.Error(echo.NewHTTPError(http.StatusBadRequest, "invalid user ID in token"))
|
||||
return
|
||||
return echo.NewHTTPError(http.StatusBadRequest, "invalid user ID in token")
|
||||
}
|
||||
|
||||
c.Set("user", database.Users{
|
||||
@@ -93,8 +92,9 @@ func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc {
|
||||
Username: claims["user_username"].(string),
|
||||
Role: claims["user_role"].(string),
|
||||
})
|
||||
return nil
|
||||
},
|
||||
ErrorHandler: func(c echo.Context, err error) error {
|
||||
ErrorHandler: func(c *echo.Context, err error) error {
|
||||
// Check if this is a page request (browser navigation)
|
||||
if wantsHTML(c.Request().Header) {
|
||||
// Page request → Redirect to login with message
|
||||
@@ -114,7 +114,7 @@ func createJWTMiddleware(cfg *Config) echo.MiddlewareFunc {
|
||||
// ensureUserExistsMiddleware checks if the authenticated user still exists in the database
|
||||
func ensureUserExistsMiddleware(cfg *Config) echo.MiddlewareFunc {
|
||||
return func(next echo.HandlerFunc) echo.HandlerFunc {
|
||||
return func(c echo.Context) error {
|
||||
return func(c *echo.Context) error {
|
||||
userIDStr, ok := c.Get("user_id").(string)
|
||||
if !ok {
|
||||
return next(c)
|
||||
@@ -184,7 +184,7 @@ func RegisterRoutes(cfg *Config) *handlers.Handler {
|
||||
e.Validator = &CustomValidator{validator: v}
|
||||
|
||||
// Global middleware
|
||||
e.Use(echomiddleware.Logger())
|
||||
e.Use(echomiddleware.RequestLogger())
|
||||
e.Use(echomiddleware.Recover())
|
||||
e.Use(echomiddleware.CORS())
|
||||
e.Use(ratelimit.RequestTracingMiddleware(cfg.Cfg))
|
||||
@@ -227,7 +227,7 @@ func RegisterRoutes(cfg *Config) *handlers.Handler {
|
||||
e.Static("/static", "web/static")
|
||||
|
||||
// Catch-all 404 handler - must be last
|
||||
e.GET("/*", func(c echo.Context) error {
|
||||
e.GET("/*", func(c *echo.Context) error {
|
||||
var buf bytes.Buffer
|
||||
err := templates.ErrorPage("Page not found", "404").Render(c.Request().Context(), &buf)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user