grafana/pkg/services/live/pipeline/converter_json_frame.go
Alexander Emelin 0bf70b14fd
Live: api to show available pipeline entities (#39469)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-09-21 11:57:58 -07:00

39 lines
792 B
Go

package pipeline
import (
"context"
"encoding/json"
"github.com/grafana/grafana-plugin-sdk-go/data"
)
type JsonFrameConverterConfig struct{}
// JsonFrameConverter decodes single data.Frame from JSON.
type JsonFrameConverter struct {
config JsonFrameConverterConfig
}
func NewJsonFrameConverter(c JsonFrameConverterConfig) *JsonFrameConverter {
return &JsonFrameConverter{
config: c,
}
}
const ConverterTypeJsonFrame = "jsonFrame"
func (c *JsonFrameConverter) Type() string {
return ConverterTypeJsonFrame
}
func (c *JsonFrameConverter) Convert(_ context.Context, _ Vars, body []byte) ([]*ChannelFrame, error) {
var frame data.Frame
err := json.Unmarshal(body, &frame)
if err != nil {
return nil, err
}
return []*ChannelFrame{
{Channel: "", Frame: &frame},
}, nil
}