diff options
author | 2017-12-22 11:33:01 -0800 | |
---|---|---|
committer | 2017-12-22 11:33:01 -0800 | |
commit | 9868f900e972edd6d4811b4a93b1955e4222e9b1 (patch) | |
tree | f366decff3a14c58a6869a1993b5698d6acce19a /server/api/controller/entry.go | |
parent | b153fa8b3cd2e48bbe13326695f11d2013427ebc (diff) | |
download | v2-9868f900e972edd6d4811b4a93b1955e4222e9b1.tar.gz v2-9868f900e972edd6d4811b4a93b1955e4222e9b1.tar.zst v2-9868f900e972edd6d4811b4a93b1955e4222e9b1.zip |
Add bookmarks
Diffstat (limited to 'server/api/controller/entry.go')
-rw-r--r-- | server/api/controller/entry.go | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/server/api/controller/entry.go b/server/api/controller/entry.go index 6d6ab7e0..0de794d7 100644 --- a/server/api/controller/entry.go +++ b/server/api/controller/entry.go @@ -12,8 +12,8 @@ import ( "github.com/miniflux/miniflux/server/core" ) -// GetEntry is the API handler to get a single feed entry. -func (c *Controller) GetEntry(ctx *core.Context, request *core.Request, response *core.Response) { +// GetFeedEntry is the API handler to get a single feed entry. +func (c *Controller) GetFeedEntry(ctx *core.Context, request *core.Request, response *core.Response) { userID := ctx.UserID() feedID, err := request.IntegerParam("feedID") if err != nil { @@ -45,6 +45,32 @@ func (c *Controller) GetEntry(ctx *core.Context, request *core.Request, response response.JSON().Standard(entry) } +// GetEntry is the API handler to get a single entry. +func (c *Controller) GetEntry(ctx *core.Context, request *core.Request, response *core.Response) { + userID := ctx.UserID() + entryID, err := request.IntegerParam("entryID") + if err != nil { + response.JSON().BadRequest(err) + return + } + + builder := c.store.GetEntryQueryBuilder(userID, ctx.UserTimezone()) + builder.WithEntryID(entryID) + + entry, err := builder.GetEntry() + if err != nil { + response.JSON().ServerError(errors.New("Unable to fetch this entry from the database")) + return + } + + if entry == nil { + response.JSON().NotFound(errors.New("Entry not found")) + return + } + + response.JSON().Standard(entry) +} + // GetFeedEntries is the API handler to get all feed entries. func (c *Controller) GetFeedEntries(ctx *core.Context, request *core.Request, response *core.Response) { userID := ctx.UserID() @@ -179,3 +205,20 @@ func (c *Controller) SetEntryStatus(ctx *core.Context, request *core.Request, re response.JSON().NoContent() } + +// ToggleBookmark is the API handler to toggle bookmark status. +func (c *Controller) ToggleBookmark(ctx *core.Context, request *core.Request, response *core.Response) { + userID := ctx.UserID() + entryID, err := request.IntegerParam("entryID") + if err != nil { + response.JSON().BadRequest(err) + return + } + + if err := c.store.ToggleBookmark(userID, entryID); err != nil { + response.JSON().ServerError(errors.New("Unable to toggle bookmark value")) + return + } + + response.JSON().NoContent() +} |