diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-04-29 18:56:40 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-04-29 18:56:40 -0700 |
commit | 5cacae6cf2e1f2f59cf294139fd0c626a3b256fc (patch) | |
tree | f35083d96bb56e58866716c1f81dcbcb8c8db672 /vendor | |
parent | 7a1653a2e9e0802677d34f513828b33c0ef5c576 (diff) |
Add API endpoint to import OPML file
Diffstat (limited to 'vendor')
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/README.md | 6 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/client.go | 7 | ||||
-rw-r--r-- | vendor/github.com/miniflux/miniflux-go/request.go | 18 |
3 files changed, 25 insertions, 6 deletions
diff --git a/vendor/github.com/miniflux/miniflux-go/README.md b/vendor/github.com/miniflux/miniflux-go/README.md index d1b5cda..aea2261 100644 --- a/vendor/github.com/miniflux/miniflux-go/README.md +++ b/vendor/github.com/miniflux/miniflux-go/README.md @@ -26,7 +26,7 @@ package main import ( "fmt" - + "io/ioutil" "github.com/miniflux/miniflux-go" ) @@ -41,7 +41,7 @@ func main() { } fmt.Println(feeds) - // Backup to opml file. + // Backup your feeds to an OPML file. opml, err := client.Export() if err != nil { fmt.Println(err) @@ -53,8 +53,8 @@ func main() { fmt.Println(err) return } - fmt.Println("backup done!") + fmt.Println("backup done!") } ``` diff --git a/vendor/github.com/miniflux/miniflux-go/client.go b/vendor/github.com/miniflux/miniflux-go/client.go index d6036dd..7b6a847 100644 --- a/vendor/github.com/miniflux/miniflux-go/client.go +++ b/vendor/github.com/miniflux/miniflux-go/client.go @@ -7,6 +7,7 @@ package miniflux import ( "encoding/json" "fmt" + "io" "io/ioutil" "net/url" "strconv" @@ -230,6 +231,12 @@ func (c *Client) Export() ([]byte, error) { return opml, nil } +// Import imports an OPML file. +func (c *Client) Import(f io.ReadCloser) error { + _, err := c.request.PostFile("/v1/import", f) + return err +} + // Feed gets a feed. func (c *Client) Feed(feedID int64) (*Feed, error) { body, err := c.request.Get(fmt.Sprintf("/v1/feeds/%d", feedID)) diff --git a/vendor/github.com/miniflux/miniflux-go/request.go b/vendor/github.com/miniflux/miniflux-go/request.go index a24a425..cae4df7 100644 --- a/vendor/github.com/miniflux/miniflux-go/request.go +++ b/vendor/github.com/miniflux/miniflux-go/request.go @@ -26,6 +26,7 @@ var ( errNotAuthorized = errors.New("miniflux: unauthorized (bad credentials)") errForbidden = errors.New("miniflux: access forbidden") errServerError = errors.New("miniflux: internal server error") + errNotFound = errors.New("miniflux: resource not found") ) type errorResponse struct { @@ -46,6 +47,10 @@ func (r *request) Post(path string, data interface{}) (io.ReadCloser, error) { return r.execute(http.MethodPost, path, data) } +func (r *request) PostFile(path string, f io.ReadCloser) (io.ReadCloser, error) { + return r.execute(http.MethodPost, path, f) +} + func (r *request) Put(path string, data interface{}) (io.ReadCloser, error) { return r.execute(http.MethodPut, path, data) } @@ -72,7 +77,12 @@ func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, request.SetBasicAuth(r.username, r.password) if data != nil { - request.Body = ioutil.NopCloser(bytes.NewBuffer(r.toJSON(data))) + switch data.(type) { + case io.ReadCloser: + request.Body = data.(io.ReadCloser) + default: + request.Body = ioutil.NopCloser(bytes.NewBuffer(r.toJSON(data))) + } } client := r.buildClient() @@ -88,6 +98,8 @@ func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, return nil, errForbidden case http.StatusInternalServerError: return nil, errServerError + case http.StatusNotFound: + return nil, errNotFound case http.StatusBadRequest: defer response.Body.Close() @@ -100,8 +112,8 @@ func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, return nil, fmt.Errorf("miniflux: bad request (%s)", resp.ErrorMessage) } - if response.StatusCode >= 400 { - return nil, fmt.Errorf("miniflux: server error (statusCode=%d)", response.StatusCode) + if response.StatusCode > 400 { + return nil, fmt.Errorf("miniflux: status code=%d", response.StatusCode) } return response.Body, nil |