Skip to content

Commit 39255c1

Browse files
refactor: Improves idiomatic err usage
1 parent 66a992c commit 39255c1

1 file changed

Lines changed: 19 additions & 23 deletions

File tree

pkg/plugin/datasource.go

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ func NewDatasource(ctx context.Context, settings backend.DataSourceInstanceSetti
3737

3838
// settings contains normal inputs in the .JSONData field in JSON byte form
3939
var options Options
40-
jsonErr := json.Unmarshal(settings.JSONData, &options)
41-
if jsonErr != nil {
42-
return nil, jsonErr
40+
err := json.Unmarshal(settings.JSONData, &options)
41+
if err != nil {
42+
return nil, fmt.Errorf("datasource options: %w", err)
4343
}
4444
url := options.Url
4545
username := options.Username
@@ -57,9 +57,9 @@ func NewDatasource(ctx context.Context, settings backend.DataSourceInstanceSetti
5757
return nil, fmt.Errorf("new http client: %w", err)
5858
}
5959
client := client.NewClientFromHTTP(url, username, password, httpClient)
60-
openErr := client.Open()
61-
if openErr != nil {
62-
return nil, openErr
60+
err = client.Open()
61+
if err != nil {
62+
return nil, fmt.Errorf("haystack client opening: %w", err)
6363
}
6464
datasource := Datasource{client: client}
6565
return &datasource, nil
@@ -121,10 +121,10 @@ func (datasource *Datasource) query(ctx context.Context, pCtx backend.PluginCont
121121
// Unmarshal the JSON into our queryModel.
122122
var model QueryModel
123123

124-
jsonErr := json.Unmarshal(query.JSON, &model)
125-
if jsonErr != nil {
126-
log.DefaultLogger.Error(jsonErr.Error())
127-
return backend.ErrDataResponse(backend.StatusBadRequest, fmt.Sprintf("json unmarshal failure: %v", jsonErr.Error()))
124+
err := json.Unmarshal(query.JSON, &model)
125+
if err != nil {
126+
log.DefaultLogger.Error(err.Error())
127+
return backend.ErrDataResponse(backend.StatusBadRequest, fmt.Sprintf("json unmarshal failure: %v", err.Error()))
128128
}
129129

130130
variables := map[string]string{
@@ -264,11 +264,7 @@ func (datasource *Datasource) query(ctx context.Context, pCtx backend.PluginCont
264264
func responseFromGrids(grids []haystack.Grid) backend.DataResponse {
265265
frames := data.Frames{}
266266
for _, grid := range grids {
267-
frame, frameErr := dataFrameFromGrid(grid)
268-
if frameErr != nil {
269-
log.DefaultLogger.Error(frameErr.Error())
270-
return backend.ErrDataResponse(backend.StatusBadRequest, fmt.Sprintf("Frame conversion failure: %v", frameErr.Error()))
271-
}
267+
frame := dataFrameFromGrid(grid)
272268
frames = append(frames, frame)
273269
}
274270

@@ -337,13 +333,13 @@ func (datasource *Datasource) hisRead(point haystack.Row, timeRange backend.Time
337333

338334
// Must convert input date range to the point's timezone.
339335
// See https://github.com/skyfoundry/haystack-java/blob/30380dbbe4b5d9be8eb3f400195b0cdcdcc67b95/src/main/java/org/projecthaystack/server/HServer.java#L328
340-
start, startErr := haystack.NewDateTimeFromGo(timeRange.From).ToTz(tz.String())
341-
if startErr != nil {
342-
return haystack.EmptyGrid(), startErr
336+
start, err := haystack.NewDateTimeFromGo(timeRange.From).ToTz(tz.String())
337+
if err != nil {
338+
return haystack.EmptyGrid(), fmt.Errorf("start time: %w", err)
343339
}
344-
end, endErr := haystack.NewDateTimeFromGo(timeRange.To).ToTz(tz.String())
345-
if endErr != nil {
346-
return haystack.EmptyGrid(), endErr
340+
end, err := haystack.NewDateTimeFromGo(timeRange.To).ToTz(tz.String())
341+
if err != nil {
342+
return haystack.EmptyGrid(), fmt.Errorf("end time: %w", err)
347343
}
348344

349345
return datasource.withRetry(
@@ -419,7 +415,7 @@ func (datasource *Datasource) withRetry(
419415
}
420416

421417
// dataFrameFromGrid converts a haystack grid to a Grafana data frame
422-
func dataFrameFromGrid(grid haystack.Grid) (*data.Frame, error) {
418+
func dataFrameFromGrid(grid haystack.Grid) *data.Frame {
423419
fields := []*data.Field{}
424420

425421
for _, col := range grid.Cols() {
@@ -531,7 +527,7 @@ func dataFrameFromGrid(grid haystack.Grid) (*data.Frame, error) {
531527
frame := data.NewFrame("response", fields...)
532528
frameName := disFromMeta(grid.Meta(), "")
533529
frame.Name = frameName
534-
return frame, nil
530+
return frame
535531
}
536532

537533
// disFromMeta returns the display name using metadata. It falls back to the provided string if no other name can be found

0 commit comments

Comments
 (0)