diff options
Diffstat (limited to 'internal/vote')
| -rw-r--r-- | internal/vote/vote.go | 12 | ||||
| -rw-r--r-- | internal/vote/vote_test.go | 4 |
2 files changed, 10 insertions, 6 deletions
diff --git a/internal/vote/vote.go b/internal/vote/vote.go index 137beed..8ad5a37 100644 --- a/internal/vote/vote.go +++ b/internal/vote/vote.go @@ -26,16 +26,20 @@ func New(ids []string) (Vote, error) { return v, nil } -func NewFromJSON(bytes []byte) (v Vote, err error) { - if err = json.Unmarshal(bytes, &v); err != nil { +func NewFromJSON(jsonStr string) (v Vote, err error) { + if err = json.Unmarshal([]byte(jsonStr), &v); err != nil { return } v.ExpiresAt = time.Now().Add(Expiry) return } -func (v Vote) ToJSON() ([]byte, error) { - return json.Marshal(v) +func (v Vote) ToJSON() (string, error) { + bytes, err := json.Marshal(v) + if err != nil { + return "", err + } + return string(bytes), nil } func (v Vote) Expired() bool { diff --git a/internal/vote/vote_test.go b/internal/vote/vote_test.go index 02c4af0..a2a851b 100644 --- a/internal/vote/vote_test.go +++ b/internal/vote/vote_test.go @@ -45,12 +45,12 @@ func TestVoteExpiry(t *testing.T) { func TestMarshalling(t *testing.T) { v, _ := New([]string{"foo", "bar", "baz", "bay"}) - bytes, err := v.ToJSON() + jsonStr, err := v.ToJSON() if err != nil { t.Errorf("unable to serialize vote to json: %v", err) } - v2, err := NewFromJSON(bytes) + v2, err := NewFromJSON(jsonStr) if err != nil { t.Errorf("unable to deserialize json to vote: %v", err) } |
