item.status encoder/decoder

This commit is contained in:
Nazar Kanaev 2020-07-04 14:20:46 +01:00
parent 5ac1dea689
commit e7d263099f

View File

@ -3,6 +3,7 @@ package storage
import (
"fmt"
"time"
"encoding/json"
)
type ItemStatus int
@ -13,6 +14,31 @@ const (
STARRED ItemStatus = 2
)
var StatusRepresentations = map[ItemStatus]string {
UNREAD: "unread",
READ: "read",
STARRED: "starred",
}
var StatusValues = map[string]ItemStatus {
"unread": UNREAD,
"read": READ,
"starred": STARRED,
}
func (s ItemStatus) MarshalJSON() ([]byte, error) {
return json.Marshal(StatusRepresentations[s])
}
func (s *ItemStatus) UnmarshalJSON(b []byte) error {
var str string
if err := json.Unmarshal(b, &s); err != nil {
return err
}
*s = StatusValues[str]
return nil
}
type Item struct {
Id string `json:"id"`
FeedId int64 `json:"feed_id"`