0ac5ff9e15
Test Query * depstextandclean * startedcleaningresult * resulttidyup * roundone * cleaning * unsyncedquery * startedtestsandsimplification * api * querytests * resultprocessortests * unittests * cleanup
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package result
|
|
|
|
import (
|
|
"context"
|
|
"queryorchestration/internal/database"
|
|
"queryorchestration/internal/database/repository"
|
|
resultprocessor "queryorchestration/internal/query/result/processor"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type ListQueryRequirementValuesParams struct {
|
|
QueryID uuid.UUID
|
|
DocumentID uuid.UUID
|
|
QueryVersion int32
|
|
MinCleanVersion int32
|
|
MinTextVersion int32
|
|
}
|
|
|
|
func (s *Service) ListQueryRequirementValues(ctx context.Context, params *ListQueryRequirementValuesParams) (*[]resultprocessor.Value, error) {
|
|
qResults, err := s.db.Queries.ListQueryRequirementValues(ctx, &repository.ListQueryRequirementValuesParams{
|
|
Queryid: database.MustToDBUUID(params.QueryID),
|
|
Documentid: database.MustToDBUUID(params.DocumentID),
|
|
Addedversion: params.QueryVersion,
|
|
Cleanversion: params.MinCleanVersion,
|
|
Textversion: params.MinTextVersion,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return parseQueryRequirementValueArray(qResults)
|
|
}
|
|
|
|
func parseQueryRequirementValueArray(v []*repository.ListQueryRequirementValuesRow) (*[]resultprocessor.Value, error) {
|
|
values := make([]resultprocessor.Value, len(v))
|
|
for index, r := range v {
|
|
qType, err := resultprocessor.ParseDBType(r.Type)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
cleanValue, err := getValueByType(qType, r.Value)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
values[index] = cleanValue
|
|
}
|
|
|
|
return &values, nil
|
|
}
|