|
|
|
@ -15,31 +15,30 @@ import ( |
|
|
|
|
|
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend" |
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/data" |
|
|
|
|
"github.com/grafana/grafana/pkg/components/simplejson" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func (s *Service) handleCsvContentScenario(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) { |
|
|
|
|
resp := backend.NewQueryDataResponse() |
|
|
|
|
|
|
|
|
|
for _, q := range req.Queries { |
|
|
|
|
model, err := simplejson.NewJson(q.JSON) |
|
|
|
|
model, err := getModel(q.JSON) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, fmt.Errorf("failed to parse query json: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
csvContent := model.Get("csvContent").MustString() |
|
|
|
|
csvContent := model.CSVContent |
|
|
|
|
if len(csvContent) == 0 { |
|
|
|
|
return backend.NewQueryDataResponse(), nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
alias := model.Get("alias").MustString("") |
|
|
|
|
alias := model.Alias |
|
|
|
|
|
|
|
|
|
frame, err := LoadCsvContent(strings.NewReader(csvContent), alias) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dropPercent := model.Get("dropPercent").MustFloat64(0) |
|
|
|
|
dropPercent := model.DropPercent |
|
|
|
|
if dropPercent > 0 { |
|
|
|
|
frame, err = dropValues(frame, dropPercent) |
|
|
|
|
if err != nil { |
|
|
|
@ -59,12 +58,12 @@ func (s *Service) handleCsvFileScenario(ctx context.Context, req *backend.QueryD |
|
|
|
|
resp := backend.NewQueryDataResponse() |
|
|
|
|
|
|
|
|
|
for _, q := range req.Queries { |
|
|
|
|
model, err := simplejson.NewJson(q.JSON) |
|
|
|
|
model, err := getModel(q.JSON) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, fmt.Errorf("failed to parse query json %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileName := model.Get("csvFileName").MustString() |
|
|
|
|
fileName := model.CSVFileName |
|
|
|
|
|
|
|
|
|
if len(fileName) == 0 { |
|
|
|
|
continue |
|
|
|
@ -76,7 +75,7 @@ func (s *Service) handleCsvFileScenario(ctx context.Context, req *backend.QueryD |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dropPercent := model.Get("dropPercent").MustFloat64(0) |
|
|
|
|
dropPercent := model.DropPercent |
|
|
|
|
if dropPercent > 0 { |
|
|
|
|
frame, err = dropValues(frame, dropPercent) |
|
|
|
|
if err != nil { |
|
|
|
|