package main import ( "context" "fmt" "log/slog" "os" queryservice "queryorchestration/api/queryService" "queryorchestration/internal/client" "queryorchestration/internal/document" cleanversion "queryorchestration/internal/document/clean/version" textversion "queryorchestration/internal/document/text/version" "queryorchestration/internal/export" "queryorchestration/internal/job" "queryorchestration/internal/job/collector" collectorupdate "queryorchestration/internal/job/collector/update" "queryorchestration/internal/query" "queryorchestration/internal/query/result" querytest "queryorchestration/internal/query/test" queryupdate "queryorchestration/internal/query/update" service "queryorchestration/internal/server/service" "queryorchestration/internal/serviceconfig/queue/jobsync" "queryorchestration/internal/serviceconfig/queue/queryversionsync" "github.com/getkin/kin-openapi/openapi3" _ "github.com/lib/pq" ) type QueryServiceConfig struct { service.BaseConfig jobsync.JobSyncConfig queryversionsync.QueryVersionSyncConfig } func main() { ctx := context.Background() cfg := &QueryServiceConfig{} cfg.RegisterHandlersFunc = func() (*openapi3.T, error) { exp := export.New() que := query.New(cfg) res := result.New(cfg, &result.Services{ Query: que, }) tev := textversion.New(cfg) clv := cleanversion.New(cfg) col := collector.New(cfg, &collector.Services{ CleanVersion: clv, TextVersion: tev, }) colupdate := collectorupdate.New(cfg, &collectorupdate.Services{ Collector: col, CleanVersion: clv, TextVersion: tev, }) cli := client.New(cfg) jbb := job.New(cfg, &job.Services{ Client: cli, Collector: col, }) doc := document.New(cfg) quetest := querytest.New(cfg, &querytest.Services{ Collector: col, Result: res, Document: doc, }) qupdate := queryupdate.New(cfg, &queryupdate.Services{ Query: que, }) services := &queryservice.Services{ Export: exp, Collector: col, CollectorUpdate: colupdate, Query: que, QueryUpdate: qupdate, QueryTest: quetest, Client: cli, Job: jbb, } cons := queryservice.NewControllers(cfg.GetValidator(), services) queryservice.RegisterHandlers(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() }