mirror of
https://github.com/nkanaev/yarr.git
synced 2025-09-13 09:55:36 +00:00
update item status
This commit is contained in:
@@ -184,7 +184,7 @@ func convertItems(items []*gofeed.Item, feed storage.Feed) []storage.Item {
|
||||
author = item.Author.Name
|
||||
}
|
||||
result = append(result, storage.Item{
|
||||
Id: item.GUID,
|
||||
GUID: item.GUID,
|
||||
FeedId: feed.Id,
|
||||
Title: item.Title,
|
||||
Link: item.Link,
|
||||
@@ -266,3 +266,29 @@ func FeedItemsHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
items := db(req).ListFeedItems(id)
|
||||
writeJSON(rw, items)
|
||||
}
|
||||
|
||||
type UpdateItem struct {
|
||||
Status *storage.ItemStatus `json:"status,omitempty"`
|
||||
}
|
||||
|
||||
func ItemHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
if req.Method == "PUT" {
|
||||
id, err := strconv.ParseInt(Vars(req)["id"], 10, 64)
|
||||
if err != nil {
|
||||
rw.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
var body UpdateItem
|
||||
if err := json.NewDecoder(req.Body).Decode(&body); err != nil {
|
||||
log.Print(err)
|
||||
rw.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if body.Status != nil {
|
||||
db(req).UpdateItemStatus(id, *body.Status)
|
||||
}
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
} else {
|
||||
rw.WriteHeader(http.StatusMethodNotAllowed)
|
||||
}
|
||||
}
|
||||
|
@@ -77,6 +77,7 @@ var routes []Route = []Route{
|
||||
p("/api/feeds/:id", FeedHandler),
|
||||
p("/api/feeds/:id/items", FeedItemsHandler),
|
||||
p("/api/feeds/find", FeedHandler),
|
||||
p("/api/items/:id", ItemHandler),
|
||||
}
|
||||
|
||||
func Vars(req *http.Request) map[string]string {
|
||||
|
Reference in New Issue
Block a user