From 535d3ff939c8fe04d1aa8a10010ad338fe941059 Mon Sep 17 00:00:00 2001 From: Nikolai Papin Date: Fri, 20 Jun 2025 16:52:52 +0300 Subject: [PATCH] refactor: made logger a dependency --- backend/cmd/main.go | 20 ++++++++++---------- backend/internal/controllers/setup.go | 12 ++++++++++++ backend/internal/logger/logger.go | 20 +++++++++++++++++--- 3 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 backend/internal/controllers/setup.go diff --git a/backend/cmd/main.go b/backend/cmd/main.go index 35a416e..78deec7 100644 --- a/backend/cmd/main.go +++ b/backend/cmd/main.go @@ -13,18 +13,21 @@ package main import ( - "time" - "net/http" "context" + "fmt" + "net/http" + "time" + "github.com/gin-gonic/gin" "go.uber.org/fx" "easywish/config" + docs "easywish/docs" "easywish/internal/controllers" "easywish/internal/logger" "easywish/internal/routes" "easywish/internal/services" - docs "easywish/docs" + swaggerfiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) @@ -35,18 +38,15 @@ func main() { panic(err) } - defer logger.Sync() - fx.New( - services.Module, fx.Provide( + logger.NewLogger, gin.Default, - controllers.NewAuthController, - controllers.NewServiceController, ), + services.Module, + controllers.Module, routes.Module, - fx.Invoke(func(lc fx.Lifecycle, router *gin.Engine) { // Swagger @@ -54,7 +54,7 @@ func main() { router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) server := &http.Server{ - Addr: ":8080", + Addr: fmt.Sprintf(":%s", config.GetConfig().Port), Handler: router, } diff --git a/backend/internal/controllers/setup.go b/backend/internal/controllers/setup.go new file mode 100644 index 0000000..a4bf298 --- /dev/null +++ b/backend/internal/controllers/setup.go @@ -0,0 +1,12 @@ +package controllers + +import ( + "go.uber.org/fx" +) + +var Module = fx.Module("controllers", + fx.Provide( + NewServiceController, + NewAuthController, + ), +) diff --git a/backend/internal/logger/logger.go b/backend/internal/logger/logger.go index 051297e..d2586bd 100644 --- a/backend/internal/logger/logger.go +++ b/backend/internal/logger/logger.go @@ -1,17 +1,31 @@ package logger + import ( "sync" - "go.uber.org/zap" "easywish/config" + + "go.uber.org/zap" ) +type Logger interface { + Get() *zap.Logger + Sync() error +} + +type loggerImpl struct { +} + +func NewLogger() Logger { + return &loggerImpl{} +} + var ( logger *zap.Logger once sync.Once ) -func GetLogger() *zap.Logger { +func (l *loggerImpl) Get() *zap.Logger { once.Do(func() { var err error cfg := config.GetConfig() @@ -28,6 +42,6 @@ func GetLogger() *zap.Logger { return logger } -func Sync() error { +func (l *loggerImpl) Sync() error { return logger.Sync() }