1
0
Fork 0
This repository has been archived on 2025-08-23. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
mareshq-backoffice-v3-api/cmd/api/main.go

51 lines
1.1 KiB
Go

package main
import (
"context"
"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"
"os"
"os/signal"
"syscall"
)
func main() {
logger := log.New(os.Stdout, "backoffice-api: ", log.LstdFlags)
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT)
defer cancel()
hostname, err := os.Hostname()
if err != nil {
logger.Fatalf("error: %v\n", err)
}
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)
}
}