Files
query-orchestration/internal/server/server.go
T
Michael McGuinness fa95d733ca Merged in feature/shorttestsanddirtidy (pull request #26)
Add short tests and Tidy internal directories

* complete the tasks
2025-01-17 12:00:32 +00:00

49 lines
866 B
Go

package server
import (
"context"
"log"
"queryorchestration/internal/database"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/server/otel"
"github.com/go-playground/validator/v10"
)
type Config struct {
Database *database.Connection
Validator *validator.Validate
}
type NewConfig struct {
BasePath string
}
func New(ctx context.Context, cfg *NewConfig) *Config {
closeTracer := otel.New(ctx)
defer closeTracer()
database.RunMigrations(ctx, &database.MigrationConfig{
BasePath: cfg.BasePath,
})
valid := validator.New()
dbPool := database.GetDBPool(ctx)
dbQueries := repository.New(dbPool)
db := &database.Connection{
Pool: dbPool,
Queries: dbQueries,
}
err := dbPool.Ping(ctx)
if err != nil {
log.Panic("Unable to ping database")
}
return &Config{
Database: db,
Validator: valid,
}
}