From 96268f8d7e162114ec79fe9de5b38d597797f4a0 Mon Sep 17 00:00:00 2001 From: perp Date: Tue, 4 Jun 2024 16:02:59 +0100 Subject: [PATCH] Removed engine from context --- cmd/main.go | 4 ++-- internal/context/context.go | 11 ----------- internal/router/api/v1/v1.go | 5 +++-- internal/router/router.go | 17 +++++++++++++++-- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index f0a4594..ee11864 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -48,11 +48,11 @@ func main() { ctx := context.New(cfg, db) // Create router - router.New(ctx) + r := router.New(ctx) // Create server server := &http.Server{ - Handler: ctx.Engine, + Handler: r, Addr: cfg.Server.Address, ReadTimeout: time.Second * time.Duration(cfg.Server.ReadTimeout), WriteTimeout: time.Second * time.Duration(cfg.Server.WriteTimeout), diff --git a/internal/context/context.go b/internal/context/context.go index 9f0dc6c..6d17457 100644 --- a/internal/context/context.go +++ b/internal/context/context.go @@ -24,24 +24,13 @@ import ( // Request context type Context struct { *gin.Context - *gin.Engine Db *database.Database Config *config.Config } // Return a new Context func New(cfg *config.Config, db *database.Database) *Context { - // Create engine - engine := gin.New() - engine.Use(gin.Recovery()) - - // Log level - if cfg.Log.Level == "debug" { - engine.Use(gin.Logger()) - } - return &Context{ - Engine: engine, Db: db, Config: cfg, } diff --git a/internal/router/api/v1/v1.go b/internal/router/api/v1/v1.go index 0d11dfc..15011c4 100644 --- a/internal/router/api/v1/v1.go +++ b/internal/router/api/v1/v1.go @@ -17,6 +17,7 @@ package v1 import ( "git.supernets.org/perp/gopay/internal/context" "git.supernets.org/perp/gopay/internal/router/api/v1/account" + "github.com/gin-gonic/gin" ) // @title GoPay API v1 @@ -30,8 +31,8 @@ import ( // @license.url http://www.apache.org/licenses/LICENSE-2.0.html // Register v1 routes -func Register(ctx *context.Context) { - v1 := ctx.Group("v1") +func Register(ctx *context.Context, engine *gin.Engine) { + v1 := engine.Group("v1") { v1.GET("scalar", ctx.Route(Spec)) diff --git a/internal/router/router.go b/internal/router/router.go index 3549d4a..e796714 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -17,9 +17,22 @@ package router import ( "git.supernets.org/perp/gopay/internal/context" v1 "git.supernets.org/perp/gopay/internal/router/api/v1" + "github.com/gin-gonic/gin" ) // Create a new router -func New(ctx *context.Context) { - v1.Register(ctx) +func New(ctx *context.Context) *gin.Engine { + // Create engine + engine := gin.New() + engine.Use(gin.Recovery()) + + // Log level + if ctx.Config.Log.Level == "debug" { + engine.Use(gin.Logger()) + } + + // Register v1 + v1.Register(ctx, engine) + + return engine }