diff --git a/cmd/api/main.go b/cmd/api/main.go index 719c7d4..d705063 100644 --- a/cmd/api/main.go +++ b/cmd/api/main.go @@ -2,7 +2,7 @@ package main import ( "context" - "gitlab.mareshq.com/hq/backoffice/backoffice-api/internal/faker" + "github.com/jackc/pgx/v5/pgxpool" "gitlab.mareshq.com/hq/backoffice/backoffice-api/internal/server" "gitlab.mareshq.com/hq/backoffice/backoffice-api/internal/training" "log" @@ -21,13 +21,29 @@ func main() { logger.Fatalf("error: %v\n", err) } - trainingRepo := training.NewInMemoryRepository() - f := faker.NewFaker(trainingRepo) - err = f.GenerateFakeData() + var connString string + connString, ok := os.LookupEnv("DATABASE_URL") + if !ok { + filePath, ok := os.LookupEnv("DATABASE_URL_FILE") + if !ok { + logger.Fatalf("error: DATABASE_URL or DATABASE_URL_FILE is not set\n") + } + + bytes, err := os.ReadFile(filePath) + if err != nil { + logger.Fatalf("error: %v\n", err) + } + + connString = string(bytes) + } + + dbConn, err := pgxpool.New(ctx, connString) if err != nil { logger.Fatalf("error: %v\n", err) } + trainingRepo := training.NewPostgresRepository(logger, dbConn) + s := server.NewServer(hostname, logger, trainingRepo) if err := s.Run(ctx); err != nil { logger.Fatalf("error: %v\n", err)