2024-08-03 20:01:25 +07:00

41 lines
879 B
Go

package main
import (
"fmt"
"log"
"furtuna-be/config"
_ "furtuna-be/docs"
"furtuna-be/internal/app"
"furtuna-be/internal/common/db"
"furtuna-be/internal/common/logger"
"furtuna-be/internal/repository"
"furtuna-be/internal/routes"
"furtuna-be/internal/services"
)
func main() {
loggerSingleton := logger.NewMainLoggerSingleton()
loggerSingleton.Info("Starting server")
cfg := config.LoadConfig()
dbConn, err := db.NewPostgres(cfg.Database)
if err != nil {
log.Fatal(err)
}
server := app.NewServer()
repo := repository.NewRepoManagerImpl(dbConn, cfg)
service := services.NewServiceManagerImpl(cfg, repo)
routes.RegisterPublicRoutes(server, service, repo)
routes.RegisterPrivateRoutes(server, service, repo)
routes.RegisterCustomerRoutes(server, service, repo)
server.StartScheduler()
log.Fatal(server.Listen(fmt.Sprint(":", cfg.Server.Port)))
}