package main import ( "context" "fmt" "log/slog" "os" queryservice "queryorchestration/api/queryService" "queryorchestration/internal/client" "queryorchestration/internal/document" documentclean "queryorchestration/internal/document/clean" documenttext "queryorchestration/internal/document/text" "queryorchestration/internal/export" "queryorchestration/internal/job" "queryorchestration/internal/job/collector" "queryorchestration/internal/query" "queryorchestration/internal/query/result" service "queryorchestration/internal/server/service" "queryorchestration/internal/serviceconfig" "github.com/getkin/kin-openapi/openapi3" _ "github.com/lib/pq" ) func main() { ctx := context.Background() cfg := &service.BaseConfig{} if err := serviceconfig.InitializeConfig(cfg); err != nil { fmt.Printf("Error initializing config: %s", err) os.Exit(1) } cfg.RegisterHandlersFunc = func() (*openapi3.T, error) { exp := export.New() extract := documenttext.New() clean := documentclean.New() res := result.New(cfg) col := collector.New(cfg, &collector.Services{ Text: extract, Clean: clean, }) doc := document.New(cfg) que := query.New(cfg, &query.Services{ Text: extract, Result: res, Collector: col, Document: doc, }) cli := client.New(cfg) jbb := job.New(cfg, &job.Services{ Collector: col, Client: cli, }) services := &queryservice.Services{ Export: exp, Collector: col, Query: que, Client: cli, Job: jbb, } cons := queryservice.NewControllers(cfg.GetValidator(), services) queryservice.RegisterHandlersWithBaseURL(cfg.Router, cons, "") swagger, err := queryservice.GetSwagger() if err != nil { return nil, fmt.Errorf("error loading swagger: %s", err) } return swagger, nil } server, err := service.New(ctx, cfg) if err != nil { slog.Error(err.Error()) os.Exit(1) } server.Listen() }