aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-04-29 18:56:40 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-04-29 18:56:40 -0700
commit5cacae6cf2e1f2f59cf294139fd0c626a3b256fc (patch)
treef35083d96bb56e58866716c1f81dcbcb8c8db672 /vendor
parent7a1653a2e9e0802677d34f513828b33c0ef5c576 (diff)
Add API endpoint to import OPML file
Diffstat (limited to 'vendor')
-rw-r--r--vendor/github.com/miniflux/miniflux-go/README.md6
-rw-r--r--vendor/github.com/miniflux/miniflux-go/client.go7
-rw-r--r--vendor/github.com/miniflux/miniflux-go/request.go18
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