mirror of
https://github.com/miniflux/v2.git
synced 2025-06-27 16:36:00 +00:00
Add API handler to fetch user by username
This commit is contained in:
parent
d5b8f2fb88
commit
c3c27e3637
6 changed files with 115 additions and 23 deletions
21
vendor/github.com/miniflux/miniflux-go/client.go
generated
vendored
21
vendor/github.com/miniflux/miniflux-go/client.go
generated
vendored
|
@ -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})
|
||||
|
|
12
vendor/github.com/miniflux/miniflux-go/request.go
generated
vendored
12
vendor/github.com/miniflux/miniflux-go/request.go
generated
vendored
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue