From 9d5d8f4df2745850a730688e708d3632b69e30cb Mon Sep 17 00:00:00 2001 From: Nazar Kanaev Date: Fri, 3 Jul 2020 23:47:26 +0100 Subject: [PATCH] basic feed list view --- server/handlers.go | 11 +++++++++++ server/server.go | 1 + storage/item.go | 23 +++++++++++------------ template/index.html | 10 +++++----- template/static/javascripts/api.js | 7 +++++-- template/static/javascripts/app.js | 11 ++++++++--- 6 files changed, 41 insertions(+), 22 deletions(-) diff --git a/server/handlers.go b/server/handlers.go index b33f400..45c2075 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -256,3 +256,14 @@ func FeedHandler(rw http.ResponseWriter, req *http.Request) { rw.WriteHeader(http.StatusMethodNotAllowed) } } + +func FeedItemsHandler(rw http.ResponseWriter, req *http.Request) { + id, err := strconv.ParseInt(Vars(req)["id"], 10, 64) + if err != nil { + rw.WriteHeader(http.StatusBadRequest) + return + } + rw.WriteHeader(http.StatusOK) + items := db(req).ListFeedItems(id) + writeJSON(rw, items) +} diff --git a/server/server.go b/server/server.go index aaa0590..1ce7901 100644 --- a/server/server.go +++ b/server/server.go @@ -80,6 +80,7 @@ var routes []Route = []Route{ p("/api/folders/:id", FolderHandler), p("/api/feeds", FeedListHandler), p("/api/feeds/:id", FeedHandler), + p("/api/feeds/:id/items", FeedItemsHandler), p("/api/feeds/find", FeedHandler), } diff --git a/storage/item.go b/storage/item.go index 6dc0705..dd00a02 100644 --- a/storage/item.go +++ b/storage/item.go @@ -14,17 +14,17 @@ const ( ) type Item struct { - Id string - FeedId int64 - Title string - Link string - Description string - Content string - Author string - Date *time.Time - DateUpdated *time.Time - Status ItemStatus - Image string + Id string `json:"id"` + FeedId int64 `json:"feed_id"` + Title string `json:"title"` + Link string `json:"link"` + Description string `json:"description"` + Content string `json:"content"` + Author string `json:"author"` + Date *time.Time `json:"date"` + DateUpdated *time.Time `json:"date_updated"` + Status ItemStatus `json:"status"` + Image string `json:"image"` } func (s *Storage) CreateItems(items []Item) bool { @@ -70,7 +70,6 @@ func itemQuery(s *Storage, cond string, v ...interface{}) []Item { content, author, date, date_updated, status, image from items where %s`, cond) - s.log.Print(query) rows, err := s.db.Query(query, v...) if err != nil { s.log.Print(err) diff --git a/template/index.html b/template/index.html index db23953..ce0887d 100644 --- a/template/index.html +++ b/template/index.html @@ -77,12 +77,12 @@