aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui/payload.go
diff options
context:
space:
mode:
Diffstat (limited to 'ui/payload.go')
-rw-r--r--ui/payload.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/ui/payload.go b/ui/payload.go
new file mode 100644
index 0000000..2841828
--- /dev/null
+++ b/ui/payload.go
@@ -0,0 +1,32 @@
+// Copyright 2017 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 (
+ "encoding/json"
+ "fmt"
+ "io"
+
+ "github.com/miniflux/miniflux/model"
+)
+
+func decodeEntryStatusPayload(data io.Reader) (entryIDs []int64, status string, err error) {
+ type payload struct {
+ EntryIDs []int64 `json:"entry_ids"`
+ Status string `json:"status"`
+ }
+
+ var p payload
+ decoder := json.NewDecoder(data)
+ if err = decoder.Decode(&p); err != nil {
+ return nil, "", fmt.Errorf("invalid JSON payload: %v", err)
+ }
+
+ if err := model.ValidateEntryStatus(p.Status); err != nil {
+ return nil, "", err
+ }
+
+ return p.EntryIDs, p.Status, nil
+}