diff --git a/backend/cmd/main.go b/backend/cmd/main.go index 35a416e..57612c0 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,26 +38,24 @@ 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 docs.SwaggerInfo.Schemes = []string{"http"} router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) + // Gin 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() }