10 "github.com/vapor/toolbar/common"
11 precogCommon "github.com/vapor/toolbar/precognitive/common"
15 ID uint16 `gorm:"primary_key"`
22 AvgRttMS sql.NullInt64
23 LatestDailyUptimeMinutes uint64
29 func (n *Node) MarshalJSON() ([]byte, error) {
30 status, ok := precogCommon.StatusLookupTable[n.Status]
32 return nil, errors.New("fail to look up status")
37 avgRttMS = uint64(n.AvgRttMS.Int64)
40 return json.Marshal(&struct {
41 Alias string `json:"alias"`
42 PublicKey string `json:"publickey"`
43 Address string `json:"address"`
44 BestHeight uint64 `json:"best_height"`
45 AvgRttMS uint64 `json:"avg_rtt_ms"`
46 LatestDailyUptimeMinutes uint64 `json:"latest_daily_uptime_minutes"`
47 Status string `json:"status"`
48 UpdatedAt common.Timestamp `json:"updated_at"`
51 PublicKey: n.PublicKey,
52 Address: fmt.Sprintf("%s:%d", n.IP, n.Port),
53 BestHeight: n.BestHeight,
55 LatestDailyUptimeMinutes: n.LatestDailyUptimeMinutes,
57 UpdatedAt: common.Timestamp(n.UpdatedAt),