Files
query-orchestration/api/controllers/parse.go
T
Michael McGuinness 9f505dd94c controllersupdate
2025-01-07 13:55:21 +00:00

46 lines
1.4 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.ActiveVersion,
LatestVersion: query.LatestVersion,
RequiredQueries: requiredQueries,
Config: &query.Config,
}
}
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
}
}