Skip to content

Commit 196f681

Browse files
authored
Add support for mutateResponse (#89)
1 parent 37ace62 commit 196f681

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

datasource.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,11 @@ func (ds *SQLDatasource) QueryData(ctx context.Context, req *backend.QueryDataRe
125125
for _, q := range req.Queries {
126126
go func(query backend.DataQuery) {
127127
frames, err := ds.handleQuery(ctx, query, getDatasourceUID(*req.PluginContext.DataSourceInstanceSettings))
128-
128+
if err == nil {
129+
if responseMutator, ok := ds.c.(ResponseMutator); ok {
130+
frames, err = responseMutator.MutateResponse(ctx, frames)
131+
}
132+
}
129133
response.Set(query.RefID, backend.DataResponse{
130134
Frames: frames,
131135
Error: err,

driver.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,9 @@ type Connection interface {
4444
type QueryMutator interface {
4545
MutateQuery(ctx context.Context, req backend.DataQuery) (context.Context, backend.DataQuery)
4646
}
47+
48+
// ResponseMutator is an additional interface that could be implemented by driver.
49+
// This adds ability to the driver, so it can mutate a response from the driver before its returned to the client.
50+
type ResponseMutator interface {
51+
MutateResponse(ctx context.Context, res data.Frames) (data.Frames, error)
52+
}

0 commit comments

Comments
 (0)