From c3c27e3637e63af5fe2d9bb45712838740063906 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 26 Dec 2017 12:10:48 -0800 Subject: Add API handler to fetch user by username --- vendor/github.com/miniflux/miniflux-go/client.go | 21 +++++++++++++++++++-- vendor/github.com/miniflux/miniflux-go/request.go | 12 ++++-------- 2 files changed, 23 insertions(+), 10 deletions(-) (limited to 'vendor') diff --git a/vendor/github.com/miniflux/miniflux-go/client.go b/vendor/github.com/miniflux/miniflux-go/client.go index 7350a70..8440a31 100644 --- a/vendor/github.com/miniflux/miniflux-go/client.go +++ b/vendor/github.com/miniflux/miniflux-go/client.go @@ -33,8 +33,8 @@ func (c *Client) Users() (Users, error) { return users, nil } -// User returns a single user. -func (c *Client) User(userID int64) (*User, error) { +// UserByID returns a single user. +func (c *Client) UserByID(userID int64) (*User, error) { body, err := c.request.Get(fmt.Sprintf("/v1/users/%d", userID)) if err != nil { return nil, err @@ -50,6 +50,23 @@ func (c *Client) User(userID int64) (*User, error) { return &user, nil } +// UserByUsername returns a single user. +func (c *Client) UserByUsername(username string) (*User, error) { + body, err := c.request.Get(fmt.Sprintf("/v1/users/%s", username)) + if err != nil { + return nil, err + } + defer body.Close() + + var user User + decoder := json.NewDecoder(body) + if err := decoder.Decode(&user); err != nil { + return nil, fmt.Errorf("miniflux: response error (%v)", err) + } + + return &user, nil +} + // CreateUser creates a new user in the system. func (c *Client) CreateUser(username, password string, isAdmin bool) (*User, error) { body, err := c.request.Post("/v1/users", &User{Username: username, Password: password, IsAdmin: isAdmin}) diff --git a/vendor/github.com/miniflux/miniflux-go/request.go b/vendor/github.com/miniflux/miniflux-go/request.go index 17baf4e..a24a425 100644 --- a/vendor/github.com/miniflux/miniflux-go/request.go +++ b/vendor/github.com/miniflux/miniflux-go/request.go @@ -55,6 +55,10 @@ func (r *request) Delete(path string) (io.ReadCloser, error) { } func (r *request) execute(method, path string, data interface{}) (io.ReadCloser, error) { + if r.endpoint[len(r.endpoint)-1:] == "/" { + r.endpoint = r.endpoint[:len(r.endpoint)-1] + } + u, err := url.Parse(r.endpoint + path) if err != nil { return nil, err @@ -126,11 +130,3 @@ func (r *request) toJSON(v interface{}) []byte { return b } - -func newRequest(endpoint, username, password string) *request { - return &request{ - endpoint: endpoint, - username: username, - password: password, - } -} -- cgit v1.2.3