diff options
author | 2018-04-29 16:35:04 -0700 | |
---|---|---|
committer | 2018-04-29 16:35:04 -0700 | |
commit | f49b42f70f902d4da1e0fa4080e99164b331b716 (patch) | |
tree | c6bdd19f11d100c44b0d30344ec37038f649e988 /ui/entry_update_status.go | |
parent | 1eba1730d1af50ed545f4fde78b22d6fb62ca11e (diff) | |
download | v2-f49b42f70f902d4da1e0fa4080e99164b331b716.tar.gz v2-f49b42f70f902d4da1e0fa4080e99164b331b716.tar.zst v2-f49b42f70f902d4da1e0fa4080e99164b331b716.zip |
Use vanilla HTTP handlers (refactoring)
Diffstat (limited to 'ui/entry_update_status.go')
-rw-r--r-- | ui/entry_update_status.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ui/entry_update_status.go b/ui/entry_update_status.go new file mode 100644 index 00000000..3174d85f --- /dev/null +++ b/ui/entry_update_status.go @@ -0,0 +1,39 @@ +// Copyright 2018 Frédéric Guillot. All rights reserved. +// Use of this source code is governed by the Apache 2.0 +// license that can be found in the LICENSE file. + +package ui + +import ( + "errors" + "net/http" + + "github.com/miniflux/miniflux/http/context" + "github.com/miniflux/miniflux/http/response/json" + "github.com/miniflux/miniflux/logger" +) + +// UpdateEntriesStatus updates the status for a list of entries. +func (c *Controller) UpdateEntriesStatus(w http.ResponseWriter, r *http.Request) { + entryIDs, status, err := decodeEntryStatusPayload(r.Body) + if err != nil { + logger.Error("[Controller:UpdateEntryStatus] %v", err) + json.BadRequest(w, nil) + return + } + + if len(entryIDs) == 0 { + json.BadRequest(w, errors.New("The list of entryID is empty")) + return + } + + ctx := context.New(r) + err = c.store.SetEntriesStatus(ctx.UserID(), entryIDs, status) + if err != nil { + logger.Error("[Controller:UpdateEntryStatus] %v", err) + json.ServerError(w, nil) + return + } + + json.OK(w, "OK") +} |