Files
query-orchestration/api/controllers/parse.go
T
Michael McGuinness 788b21594c creatorupdatordeprecate
2025-01-07 13:54:41 +00:00

44 lines
1.3 KiB
Go

package controllers
import (
serviceinterfaces "queryorchestration/api/serviceInterfaces"
"queryorchestration/internal/query"
queryprocessor "queryorchestration/internal/queryProcessor"
)
func ParseQuery(query *query.Query) *serviceinterfaces.Query {
requiredQueries := make([]string, len(query.RequiredQueryIDs))
for index, id := range query.RequiredQueryIDs {
requiredQueries[index] = id.String()
}
return &serviceinterfaces.Query{
Id: query.ID.String(),
Type: ParseQueryType(query.Type),
ActiveVersion: query.Version,
RequiredQueries: requiredQueries,
}
}
func ParseQueryType(qType queryprocessor.Type) serviceinterfaces.QueryType {
switch qType {
case queryprocessor.TypeJsonExtractor:
return serviceinterfaces.QueryType_QUERY_TYPE_JSON_EXTRACTOR
case queryprocessor.TypeContextFull:
return serviceinterfaces.QueryType_QUERY_TYPE_CONTEXT_FULL
default:
return serviceinterfaces.QueryType_QUERY_TYPE_UNSPECIFIED
}
}
func ParseSpecQueryType(qType serviceinterfaces.QueryType) queryprocessor.Type {
switch qType {
case serviceinterfaces.QueryType_QUERY_TYPE_JSON_EXTRACTOR:
return queryprocessor.TypeJsonExtractor
case serviceinterfaces.QueryType_QUERY_TYPE_CONTEXT_FULL:
return queryprocessor.TypeContextFull
default:
return queryprocessor.TypeContextFull
}
}