package main import ( "context" "log" queryservice "queryorchestration/api/queryService" "queryorchestration/internal/client" documentclean "queryorchestration/internal/document/clean" "queryorchestration/internal/export" "queryorchestration/internal/job" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" "queryorchestration/internal/server" "queryorchestration/internal/server/api" textextraction "queryorchestration/internal/text_extraction" "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) que := query.New(cfg.Database) extract := textextraction.New() clean := documentclean.New() col := collector.New(cfg.Database, &collector.Services{ Query: que, TextExtraction: extract, DocumentClean: clean, }) cli := client.New(cfg.Database) jbb := job.New(cfg.Database, &job.Services{ Collector: col, Client: cli, }) services := &queryservice.Services{ Export: exp, JobCollector: col, Query: que, Client: cli, Job: jbb, } 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() }