Files
grafana/pkg/services/store/kind/dataframe/summary.go
2023-01-25 12:43:22 -05:00

52 lines
1.1 KiB
Go

package dataframe
import (
"context"
"encoding/json"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/grafana/grafana/pkg/services/store"
"github.com/grafana/grafana/pkg/services/store/entity"
)
func GetEntityKindInfo() entity.EntityKindInfo {
return entity.EntityKindInfo{
ID: entity.StandardKindDataFrame,
Name: "Data frame",
Description: "Data frame",
}
}
func GetEntitySummaryBuilder() entity.EntitySummaryBuilder {
return func(ctx context.Context, uid string, body []byte) (*entity.EntitySummary, []byte, error) {
df := &data.Frame{}
err := json.Unmarshal(body, df)
if err != nil {
return nil, nil, err
}
rows, err := df.RowLen()
if err != nil {
return nil, nil, err
}
out, err := data.FrameToJSON(df, data.IncludeAll)
if err != nil {
return nil, nil, err
}
summary := &entity.EntitySummary{
Kind: entity.StandardKindDataFrame,
Name: df.Name,
UID: uid,
Fields: map[string]interface{}{
"rows": rows,
"cols": len(df.Fields),
},
}
if summary.Name == "" {
summary.Name = store.GuessNameFromUID(uid)
}
return summary, out, err
}
}