aboutsummaryrefslogtreecommitdiffhomepage
path: root/api/feed.go
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-06-23 16:16:54 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-06-23 16:16:54 -0700
commit7039df9af1de1aea72e90d4aa9fa6a37d21e1be0 (patch)
tree99df837fcec01a2972b2da91a34f9044cb016f72 /api/feed.go
parentcd77ebd7422b0988df9a5c017901a51507e79abd (diff)
Improve feed and user API updates with optional values
Diffstat (limited to 'api/feed.go')
-rw-r--r--api/feed.go15
1 files changed, 8 insertions, 7 deletions
diff --git a/api/feed.go b/api/feed.go
index 351457f..b7c46ea 100644
--- a/api/feed.go
+++ b/api/feed.go
@@ -97,7 +97,7 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
return
}
- newFeed, err := decodeFeedModificationPayload(r.Body)
+ feedChanges, err := decodeFeedModificationPayload(r.Body)
if err != nil {
json.BadRequest(w, err)
return
@@ -106,11 +106,6 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
ctx := context.New(r)
userID := ctx.UserID()
- if newFeed.Category != nil && newFeed.Category.ID != 0 && !c.store.CategoryExists(userID, newFeed.Category.ID) {
- json.BadRequest(w, errors.New("This category_id doesn't exists or doesn't belongs to this user"))
- return
- }
-
originalFeed, err := c.store.FeedByID(userID, feedID)
if err != nil {
json.NotFound(w, errors.New("Unable to find this feed"))
@@ -122,7 +117,13 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
return
}
- originalFeed.Merge(newFeed)
+ feedChanges.Update(originalFeed)
+
+ if !c.store.CategoryExists(userID, originalFeed.Category.ID) {
+ json.BadRequest(w, errors.New("This category_id doesn't exists or doesn't belongs to this user"))
+ return
+ }
+
if err := c.store.UpdateFeed(originalFeed); err != nil {
json.ServerError(w, errors.New("Unable to update this feed"))
return