From 47ea2eacd0403772a1da8a45ce15049601c8f27a Mon Sep 17 00:00:00 2001 From: Denis Istratov Date: Tue, 22 Oct 2024 12:00:00 +0300 Subject: [PATCH] update main.go --- cmd/release/main.go | 57 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 cmd/release/main.go diff --git a/cmd/release/main.go b/cmd/release/main.go new file mode 100644 index 0000000..34377ed --- /dev/null +++ b/cmd/release/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "esaccount" + "esaccount/pkg/handler" + "esaccount/pkg/repository" + "esaccount/pkg/service" + "os" + + "github.com/gin-gonic/gin" + "github.com/joho/godotenv" + "github.com/sirupsen/logrus" + "github.com/spf13/viper" +) + +func main() { + gin.SetMode(gin.ReleaseMode) + logrus.SetFormatter(new(logrus.TextFormatter)) + if err := initConfig(); err != nil { + logrus.Fatalf("error occured while init config: %s", err.Error()) + } + + if err := godotenv.Load(); err != nil { + logrus.Fatalf("error loading env vars: %s", err.Error()) + } + + db, err := repository.NewDB(repository.Config{ + Host: viper.GetString("db.host"), + Port: viper.GetString("db.port"), + Username: viper.GetString("db.username"), + DBName: viper.GetString("db.dbname"), + Password: os.Getenv("DB_PASSWORD"), + }) + + if err != nil { + logrus.Fatalf("failed to init database: %s", err.Error()) + } + + repos := repository.NewRepository(db) + services := service.NewService() + + handlers := handler.NewHandler( + services, + repos, + ) + + srv := new(esaccount.Server) + if err := srv.Run(viper.GetString("port"), handlers.InitRoutes()); err != nil { + logrus.Fatalf("error occured while running http server: %s", err.Error()) + } +} + +func initConfig() error { + viper.AddConfigPath("configs") + viper.SetConfigName("config") + return viper.ReadInConfig() +}