Refactor parse query to functions

This commit is contained in:
Ivana Huckova
2022-12-16 11:29:44 +01:00
parent 689f30623a
commit d31b5fdc95
3 changed files with 8 additions and 18 deletions
@@ -1176,8 +1176,7 @@ func parseTestResponse(tsdbQueries map[string]string, responseBody string) (*bac
return nil, err
}
tsQueryParser := newTimeSeriesQueryParser()
queries, err := tsQueryParser.parse(tsdbQuery.Queries)
queries, err := parseQuery(tsdbQuery.Queries)
if err != nil {
return nil, err
}
+6 -13
View File
@@ -28,8 +28,7 @@ var newTimeSeriesQuery = func(client es.Client, dataQuery []backend.DataQuery,
}
func (e *timeSeriesQuery) execute() (*backend.QueryDataResponse, error) {
tsQueryParser := newTimeSeriesQueryParser()
queries, err := tsQueryParser.parse(e.dataQueries)
queries, err := parseQuery(e.dataQueries)
if err != nil {
return &backend.QueryDataResponse{}, err
}
@@ -399,13 +398,7 @@ func addGeoHashGridAgg(aggBuilder es.AggBuilder, bucketAgg *BucketAgg) es.AggBui
return aggBuilder
}
type timeSeriesQueryParser struct{}
func newTimeSeriesQueryParser() *timeSeriesQueryParser {
return &timeSeriesQueryParser{}
}
func (p *timeSeriesQueryParser) parse(tsdbQuery []backend.DataQuery) ([]*Query, error) {
func parseQuery(tsdbQuery []backend.DataQuery) ([]*Query, error) {
queries := make([]*Query, 0)
for _, q := range tsdbQuery {
model, err := simplejson.NewJson(q.JSON)
@@ -417,11 +410,11 @@ func (p *timeSeriesQueryParser) parse(tsdbQuery []backend.DataQuery) ([]*Query,
return nil, err
}
rawQuery := model.Get("query").MustString()
bucketAggs, err := p.parseBucketAggs(model)
bucketAggs, err := parseBucketAggs(model)
if err != nil {
return nil, err
}
metrics, err := p.parseMetrics(model)
metrics, err := parseMetrics(model)
if err != nil {
return nil, err
}
@@ -443,7 +436,7 @@ func (p *timeSeriesQueryParser) parse(tsdbQuery []backend.DataQuery) ([]*Query,
return queries, nil
}
func (p *timeSeriesQueryParser) parseBucketAggs(model *simplejson.Json) ([]*BucketAgg, error) {
func parseBucketAggs(model *simplejson.Json) ([]*BucketAgg, error) {
var err error
var result []*BucketAgg
for _, t := range model.Get("bucketAggs").MustArray() {
@@ -468,7 +461,7 @@ func (p *timeSeriesQueryParser) parseBucketAggs(model *simplejson.Json) ([]*Buck
return result, nil
}
func (p *timeSeriesQueryParser) parseMetrics(model *simplejson.Json) ([]*MetricAgg, error) {
func parseMetrics(model *simplejson.Json) ([]*MetricAgg, error) {
var err error
var result []*MetricAgg
for _, t := range model.Get("metrics").MustArray() {
@@ -1817,8 +1817,6 @@ func executeTsdbQuery(c es.Client, body string, from, to time.Time, minInterval
func TestTimeSeriesQueryParser(t *testing.T) {
t.Run("Test time series query parser", func(t *testing.T) {
p := newTimeSeriesQueryParser()
t.Run("Should be able to parse query", func(t *testing.T) {
body := `{
"timeField": "@timestamp",
@@ -1872,7 +1870,7 @@ func TestTimeSeriesQueryParser(t *testing.T) {
}`
dataQuery, err := newDataQuery(body)
require.NoError(t, err)
queries, err := p.parse(dataQuery.Queries)
queries, err := parseQuery(dataQuery.Queries)
require.NoError(t, err)
require.Len(t, queries, 1)