Merged in feature/update (pull request #27)

Query Update

* baselineupdate

* baseupdateplusmodelupdates

* passtests

* somemoresubmittesting

* testinnerfunctions

* readmeandinstall

* cleanerstartup

* readmeplusdeps

* tidyatrighttime

* validatetests

* normalizedontvalidate

* abitofzenormalizationcleanup

* addunitstestforhelperfuns

* normalizeactiveversiontestas
This commit is contained in:
Michael McGuinness
2025-01-20 13:31:48 +00:00
parent 897fd1c6dd
commit 518927c395
52 changed files with 1705 additions and 461 deletions
+35 -15
View File
@@ -4,6 +4,8 @@ import (
"errors"
"queryorchestration/internal/query"
queryprocessor "queryorchestration/internal/query/processor"
"github.com/google/uuid"
)
func parseQueries(queries []*query.Query) ([]Query, error) {
@@ -21,9 +23,14 @@ func parseQueries(queries []*query.Query) ([]Query, error) {
}
func parseQuery(query *query.Query) (*Query, error) {
requiredQueries := make([]string, len(query.RequiredQueryIDs))
for index, id := range query.RequiredQueryIDs {
requiredQueries[index] = id.String()
var requiredQueries *[]string
if query.RequiredQueryIDs != nil && len(*query.RequiredQueryIDs) > 0 {
rQ := make([]string, len(*query.RequiredQueryIDs))
for index, id := range *query.RequiredQueryIDs {
rQ[index] = id.String()
}
requiredQueries = &rQ
}
qt, err := parseQueryType(query.Type)
@@ -32,18 +39,12 @@ func parseQuery(query *query.Query) (*Query, error) {
}
q := &Query{
Id: query.ID.String(),
Type: qt,
ActiveVersion: query.ActiveVersion,
LatestVersion: query.LatestVersion,
}
if query.Config != "" {
q.Config = &query.Config
}
if len(query.RequiredQueryIDs) > 0 {
q.RequiredQueries = requiredQueries
Id: query.ID.String(),
Type: qt,
ActiveVersion: query.ActiveVersion,
LatestVersion: query.LatestVersion,
RequiredQueries: requiredQueries,
Config: query.Config,
}
return q, nil
@@ -70,3 +71,22 @@ func parseSpecQueryType(qType QueryType) (queryprocessor.Type, error) {
return queryprocessor.Type(-1), errors.New("invalid query type")
}
}
func parseStringToUUIDArray(sids *[]string) (*[]uuid.UUID, error) {
var ids []uuid.UUID
if sids != nil {
ids = make([]uuid.UUID, len(*sids))
for index, id := range *sids {
parsedID, err := uuid.Parse(id)
if err != nil {
return nil, errors.New("invalid required id")
}
ids[index] = parsedID
}
return &ids, nil
}
return nil, nil
}