From 320d1b016747ba4501da9417d9ce5f99368a5768 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 2 Jan 2018 22:04:48 -0800 Subject: Refactor packages to have more idiomatic code base --- ui/payload.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ui/payload.go (limited to 'ui/payload.go') 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 +} -- cgit v1.2.3