mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-25 05:29:20 +00:00
item.status encoder/decoder
This commit is contained in:
parent
5ac1dea689
commit
e7d263099f
@ -3,6 +3,7 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
"encoding/json"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ItemStatus int
|
type ItemStatus int
|
||||||
@ -13,6 +14,31 @@ const (
|
|||||||
STARRED ItemStatus = 2
|
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 {
|
type Item struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
FeedId int64 `json:"feed_id"`
|
FeedId int64 `json:"feed_id"`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user