package main import ( "context" "log" queryservice "queryorchestration/api/queryService" "queryorchestration/internal/client" "queryorchestration/internal/export" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" "queryorchestration/internal/server" "queryorchestration/internal/server/api" "github.com/labstack/echo/v4" _ "github.com/lib/pq" ) func main() { ctx := context.Background() registerHandlers := func(cfg *server.Config, e *echo.Echo) *api.APIConfig { exp := export.New(cfg.Database) col := collector.New(cfg.Database) que := query.New(cfg.Database) cli := client.New(cfg.Database) services := &queryservice.Services{ Export: exp, JobCollector: col, Query: que, Client: cli, } cons := queryservice.NewControllers(cfg.Validator, services) queryservice.RegisterHandlersWithBaseURL(e, cons, "") swagger, err := queryservice.GetSwagger() if err != nil { log.Panicf("Error loading swagger: %s", err) } return &api.APIConfig{ Swagger: swagger, } } server := api.New(ctx, &api.Config{ RegisterHandlers: registerHandlers, }) server.Listen() }