package query import ( "context" "queryorchestration/internal/query/result" resultprocessor "queryorchestration/internal/query/result/processor" "github.com/google/uuid" ) type Test struct { QueryID uuid.UUID DocumentID uuid.UUID QueryVersion int32 } func (s *Service) Test(ctx context.Context, filters Test) (string, error) { doc, err := s.svc.Document.Get(ctx, filters.DocumentID) if err != nil { return "", err } col, err := s.svc.Collector.GetByJobID(ctx, doc.JobID) if err != nil { return "", err } res, err := s.svc.Result.GetValueWithVersion(ctx, &result.GetValueWithVersionParams{ QueryID: filters.QueryID, DocumentID: filters.DocumentID, QueryVersion: filters.QueryVersion, MinCleanVersion: col.MinCleanVersion, MinTextVersion: col.MinTextVersion, }) if err == nil { return res.GetValue(ctx) } q, err := s.GetWithVersion(ctx, filters.QueryID, filters.QueryVersion) if err != nil { return "", err } value, err := s.svc.Result.Process(ctx, &result.Process{ DocumentID: filters.DocumentID, MinCleanVersion: col.MinCleanVersion, MinTextVersion: col.MinTextVersion, Query: &resultprocessor.Query{ ID: q.ID, Type: q.Type, Version: filters.QueryVersion, RequiredQueryIDs: q.RequiredQueryIDs, Config: q.Config, }, }) if err != nil { return "", err } return value.GetValue(ctx) }