From 8b9e4eeead8717974d34839c7b32cf9324b860db Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Sat, 19 Mar 2022 07:42:10 -0400 Subject: feed: add MarshalJSON for several types --- feed/cveid.go | 5 +++++ feed/score.go | 10 ++++++++++ feed/severity.go | 5 +++++ 3 files changed, 20 insertions(+) diff --git a/feed/cveid.go b/feed/cveid.go index 5e43ad3..d7d9a32 100644 --- a/feed/cveid.go +++ b/feed/cveid.go @@ -75,6 +75,11 @@ func NewCveId(s string) (CveId, error) { return CveId(encodeCveId(year, num)), nil } +// Marshal CVE ID to JSON. +func (me CveId) MarshalJSON() ([]byte, error) { + return json.Marshal(me.String()) +} + // Unmarshal CVE ID from JSON. func (me *CveId) UnmarshalJSON(b []byte) error { // decode string, check for error diff --git a/feed/score.go b/feed/score.go index 9a03c50..30bb398 100644 --- a/feed/score.go +++ b/feed/score.go @@ -44,3 +44,13 @@ func (me Score) String() string { val := float64(me) / 10.0 return strconv.FormatFloat(val, 'f', 1, 64) } + +// Return floating point representation of score. +func (s Score) Float() float32 { + return float32(s) / 10.0 +} + +// Marshal score as JSON. +func (s Score) MarshalJSON() ([]byte, error) { + return json.Marshal(s.Float()) +} diff --git a/feed/severity.go b/feed/severity.go index 50969ed..694b469 100644 --- a/feed/severity.go +++ b/feed/severity.go @@ -45,3 +45,8 @@ func (me *Severity) UnmarshalJSON(b []byte) error { // return success return nil } + +// Marshal CVSS severity as JSON. +func (me Severity) MarshalJSON() ([]byte, error) { + return json.Marshal(me.String()) +} -- cgit v1.2.3