aboutsummaryrefslogtreecommitdiff
path: root/server/api/controller/entry.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net> 2017-11-24 22:29:20 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net> 2017-11-24 22:29:20 -0800
commit71bf7e43580377a9bb98c6444c32e95b53602f12 (patch)
tree477d57670a17345a28af8e09a077113d3c7b827f /server/api/controller/entry.go
parent747da03e4cf1478937a434792fdb52dd10ae8cda (diff)
downloadv2-71bf7e43580377a9bb98c6444c32e95b53602f12.tar.gz
v2-71bf7e43580377a9bb98c6444c32e95b53602f12.tar.zst
v2-71bf7e43580377a9bb98c6444c32e95b53602f12.zip
Improve API
Diffstat (limited to 'server/api/controller/entry.go')
-rw-r--r--server/api/controller/entry.go44
1 files changed, 6 insertions, 38 deletions
diff --git a/server/api/controller/entry.go b/server/api/controller/entry.go
index 54d52ba5..f5833783 100644
--- a/server/api/controller/entry.go
+++ b/server/api/controller/entry.go
@@ -6,6 +6,7 @@ package api
import (
"errors"
+
"github.com/miniflux/miniflux2/model"
"github.com/miniflux/miniflux2/server/api/payload"
"github.com/miniflux/miniflux2/server/core"
@@ -99,23 +100,11 @@ func (c *Controller) GetFeedEntries(ctx *core.Context, request *core.Request, re
response.JSON().Standard(&payload.EntriesResponse{Total: count, Entries: entries})
}
-// SetEntryStatus is the API handler to change the status of an entry.
+// SetEntryStatus is the API handler to change the status of entries.
func (c *Controller) SetEntryStatus(ctx *core.Context, request *core.Request, response *core.Response) {
userID := ctx.UserID()
- feedID, err := request.IntegerParam("feedID")
- if err != nil {
- response.JSON().BadRequest(err)
- return
- }
-
- entryID, err := request.IntegerParam("entryID")
- if err != nil {
- response.JSON().BadRequest(err)
- return
- }
-
- status, err := payload.DecodeEntryStatusPayload(request.Body())
+ entryIDs, status, err := payload.DecodeEntryStatusPayload(request.Body())
if err != nil {
response.JSON().BadRequest(errors.New("Invalid JSON payload"))
return
@@ -126,31 +115,10 @@ func (c *Controller) SetEntryStatus(ctx *core.Context, request *core.Request, re
return
}
- builder := c.store.GetEntryQueryBuilder(userID, ctx.UserTimezone())
- builder.WithFeedID(feedID)
- 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"))
+ if err := c.store.SetEntriesStatus(userID, entryIDs, status); err != nil {
+ response.JSON().ServerError(errors.New("Unable to change entries status"))
return
}
- if err := c.store.SetEntriesStatus(userID, []int64{entry.ID}, status); err != nil {
- response.JSON().ServerError(errors.New("Unable to change entry status"))
- return
- }
-
- entry, err = builder.GetEntry()
- if err != nil {
- response.JSON().ServerError(errors.New("Unable to fetch this entry from the database"))
- return
- }
-
- response.JSON().Standard(entry)
+ response.JSON().NoContent()
}