kubeshark/tap/extensions/redis/helpers.go
2022-01-25 05:10:32 +03:00

66 lines
1.4 KiB
Go

package redis
import (
"encoding/json"
"fmt"
"github.com/up9inc/mizu/tap/api"
)
type RedisPayload struct {
Data interface{}
}
type RedisPayloader interface {
MarshalJSON() ([]byte, error)
}
func (h RedisPayload) MarshalJSON() ([]byte, error) {
return json.Marshal(h.Data)
}
type RedisWrapper struct {
Method string `json:"method"`
Url string `json:"url"`
Details interface{} `json:"details"`
}
func representGeneric(generic map[string]interface{}, selectorPrefix string) (representation []interface{}) {
details, _ := json.Marshal([]api.TableData{
{
Name: "Type",
Value: generic["type"].(string),
Selector: fmt.Sprintf("%stype", selectorPrefix),
},
{
Name: "Command",
Value: generic["command"].(string),
Selector: fmt.Sprintf("%scommand", selectorPrefix),
},
{
Name: "Key",
Value: generic["key"].(string),
Selector: fmt.Sprintf("%skey", selectorPrefix),
},
{
Name: "Keyword",
Value: generic["keyword"].(string),
Selector: fmt.Sprintf("%skeyword", selectorPrefix),
},
})
representation = append(representation, api.SectionData{
Type: api.TABLE,
Title: "Details",
Data: string(details),
})
representation = append(representation, api.SectionData{
Type: api.BODY,
Title: "Value",
Data: generic["value"].(string),
Selector: fmt.Sprintf("%svalue", selectorPrefix),
})
return
}