43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
|
|
package controllers
|
||
|
|
|
||
|
|
import (
|
||
|
|
serviceinterfaces "queryorchestration/api/serviceInterfaces"
|
||
|
|
"queryorchestration/internal/query"
|
||
|
|
)
|
||
|
|
|
||
|
|
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 query.Type) serviceinterfaces.QueryType {
|
||
|
|
switch qType {
|
||
|
|
case query.TypeJsonExtractor:
|
||
|
|
return serviceinterfaces.QueryType_QUERY_TYPE_JSON_EXTRACTOR
|
||
|
|
case query.TypeContextFull:
|
||
|
|
return serviceinterfaces.QueryType_QUERY_TYPE_CONTEXT_FULL
|
||
|
|
default:
|
||
|
|
return serviceinterfaces.QueryType_QUERY_TYPE_UNSPECIFIED
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func ParseSpecQueryType(qType serviceinterfaces.QueryType) query.Type {
|
||
|
|
switch qType {
|
||
|
|
case serviceinterfaces.QueryType_QUERY_TYPE_JSON_EXTRACTOR:
|
||
|
|
return query.TypeJsonExtractor
|
||
|
|
case serviceinterfaces.QueryType_QUERY_TYPE_CONTEXT_FULL:
|
||
|
|
return query.TypeContextFull
|
||
|
|
default:
|
||
|
|
return query.TypeContextFull
|
||
|
|
}
|
||
|
|
}
|