Block and unblock by id
Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
@@ -286,18 +286,18 @@ func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) (*Res
|
|||||||
}
|
}
|
||||||
|
|
||||||
// id returns the client's Reddit ID.
|
// id returns the client's Reddit ID.
|
||||||
func (c *Client) id(ctx context.Context) (string, error) {
|
func (c *Client) id(ctx context.Context) (string, *Response, error) {
|
||||||
if c.redditID != "" {
|
if c.redditID != "" {
|
||||||
return c.redditID, nil
|
return c.redditID, nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
self, _, err := c.User.Get(ctx, c.Username)
|
self, resp, err := c.User.Get(ctx, c.Username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
c.redditID = fmt.Sprintf("%s_%s", kindAccount, self.ID)
|
c.redditID = fmt.Sprintf("%s_%s", kindAccount, self.ID)
|
||||||
return c.redditID, nil
|
return c.redditID, resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoRequest submits an HTTP request.
|
// DoRequest submits an HTTP request.
|
||||||
|
|||||||
@@ -421,32 +421,32 @@ func (s *UserService) Block(ctx context.Context, username string) (*Blocked, *Re
|
|||||||
return root, resp, nil
|
return root, resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// // BlockByID blocks a user via their full id.
|
// BlockByID blocks a user via their full id.
|
||||||
// func (s *UserService) BlockByID(ctx context.Context, id string) (*Blocked, *Response, error) {
|
func (s *UserService) BlockByID(ctx context.Context, id string) (*Blocked, *Response, error) {
|
||||||
// path := "api/block_user"
|
path := "api/block_user"
|
||||||
|
|
||||||
// form := url.Values{}
|
form := url.Values{}
|
||||||
// form.Set("account_id", id)
|
form.Set("account_id", id)
|
||||||
|
|
||||||
// req, err := s.client.NewPostForm(path, form)
|
req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, nil, err
|
return nil, nil, err
|
||||||
// }
|
}
|
||||||
|
|
||||||
// root := new(Blocked)
|
root := new(Blocked)
|
||||||
// resp, err := s.client.Do(ctx, req, root)
|
resp, err := s.client.Do(ctx, req, root)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, resp, err
|
return nil, resp, err
|
||||||
// }
|
}
|
||||||
|
|
||||||
// return root, resp, nil
|
return root, resp, nil
|
||||||
// }
|
}
|
||||||
|
|
||||||
// Unblock unblocks a user.
|
// Unblock unblocks a user.
|
||||||
func (s *UserService) Unblock(ctx context.Context, username string) (*Response, error) {
|
func (s *UserService) Unblock(ctx context.Context, username string) (*Response, error) {
|
||||||
selfID, err := s.client.id(ctx)
|
selfID, resp, err := s.client.id(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
path := "api/unfriend"
|
path := "api/unfriend"
|
||||||
@@ -464,27 +464,27 @@ func (s *UserService) Unblock(ctx context.Context, username string) (*Response,
|
|||||||
return s.client.Do(ctx, req, nil)
|
return s.client.Do(ctx, req, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
// // UnblockByID unblocks a user via their full id.
|
// UnblockByID unblocks a user via their full id.
|
||||||
// func (s *UserService) UnblockByID(ctx context.Context, id string) (*Response, error) {
|
func (s *UserService) UnblockByID(ctx context.Context, id string) (*Response, error) {
|
||||||
// selfID, err := s.client.GetRedditID(ctx)
|
selfID, resp, err := s.client.id(ctx)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, err
|
return resp, err
|
||||||
// }
|
}
|
||||||
|
|
||||||
// path := "api/unfriend"
|
path := "api/unfriend"
|
||||||
|
|
||||||
// form := url.Values{}
|
form := url.Values{}
|
||||||
// form.Set("id", id)
|
form.Set("id", id)
|
||||||
// form.Set("type", "enemy")
|
form.Set("type", "enemy")
|
||||||
// form.Set("container", selfID)
|
form.Set("container", selfID)
|
||||||
|
|
||||||
// req, err := s.client.NewPostForm(path, form)
|
req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, err
|
return nil, err
|
||||||
// }
|
}
|
||||||
|
|
||||||
// return s.client.Do(ctx, req, nil)
|
return s.client.Do(ctx, req, nil)
|
||||||
// }
|
}
|
||||||
|
|
||||||
// Trophies returns a list of your trophies.
|
// Trophies returns a list of your trophies.
|
||||||
func (s *UserService) Trophies(ctx context.Context) ([]Trophy, *Response, error) {
|
func (s *UserService) Trophies(ctx context.Context) ([]Trophy, *Response, error) {
|
||||||
|
|||||||
+35
-35
@@ -813,30 +813,30 @@ func TestUserService_Block(t *testing.T) {
|
|||||||
require.Equal(t, expectedBlocked, blocked)
|
require.Equal(t, expectedBlocked, blocked)
|
||||||
}
|
}
|
||||||
|
|
||||||
// func TestUserService_BlockByID(t *testing.T) {
|
func TestUserService_BlockByID(t *testing.T) {
|
||||||
// setup()
|
setup()
|
||||||
// defer teardown()
|
defer teardown()
|
||||||
|
|
||||||
// blob, err := readFileContents("testdata/user/block.json")
|
blob, err := readFileContents("testdata/user/block.json")
|
||||||
// require.NoError(t,err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// mux.HandleFunc("/api/block_user", func(w http.ResponseWriter, r *http.Request) {
|
mux.HandleFunc("/api/block_user", func(w http.ResponseWriter, r *http.Request) {
|
||||||
// require.Equal(t, http.MethodPost, r.Method)
|
require.Equal(t, http.MethodPost, r.Method)
|
||||||
|
|
||||||
// form := url.Values{}
|
form := url.Values{}
|
||||||
// form.Set("account_id", "abc123")
|
form.Set("account_id", "abc123")
|
||||||
|
|
||||||
// err := r.ParseForm()
|
err := r.ParseForm()
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.Equal(t, form, r.Form)
|
require.Equal(t, form, r.Form)
|
||||||
|
|
||||||
// fmt.Fprint(w, blob)
|
fmt.Fprint(w, blob)
|
||||||
// })
|
})
|
||||||
|
|
||||||
// blocked, _, err := client.User.BlockByID(ctx, "abc123")
|
blocked, _, err := client.User.BlockByID(ctx, "abc123")
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.Equal(t, expectedBlocked, blocked)
|
require.Equal(t, expectedBlocked, blocked)
|
||||||
// }
|
}
|
||||||
|
|
||||||
func TestUserService_Unblock(t *testing.T) {
|
func TestUserService_Unblock(t *testing.T) {
|
||||||
setup()
|
setup()
|
||||||
@@ -861,28 +861,28 @@ func TestUserService_Unblock(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// func TestUserService_UnblockByID(t *testing.T) {
|
func TestUserService_UnblockByID(t *testing.T) {
|
||||||
// setup()
|
setup()
|
||||||
// defer teardown()
|
defer teardown()
|
||||||
|
|
||||||
// client.redditID = "self123"
|
client.redditID = "self123"
|
||||||
|
|
||||||
// mux.HandleFunc("/api/unfriend", func(w http.ResponseWriter, r *http.Request) {
|
mux.HandleFunc("/api/unfriend", func(w http.ResponseWriter, r *http.Request) {
|
||||||
// require.Equal(t, http.MethodPost, r.Method)
|
require.Equal(t, http.MethodPost, r.Method)
|
||||||
|
|
||||||
// form := url.Values{}
|
form := url.Values{}
|
||||||
// form.Set("id", "abc123")
|
form.Set("id", "abc123")
|
||||||
// form.Set("type", "enemy")
|
form.Set("type", "enemy")
|
||||||
// form.Set("container", client.redditID)
|
form.Set("container", client.redditID)
|
||||||
|
|
||||||
// err := r.ParseForm()
|
err := r.ParseForm()
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// require.Equal(t, form, r.Form)
|
require.Equal(t, form, r.Form)
|
||||||
// })
|
})
|
||||||
|
|
||||||
// _, err := client.User.UnblockByID(ctx, "abc123")
|
_, err := client.User.UnblockByID(ctx, "abc123")
|
||||||
// require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
// }
|
}
|
||||||
|
|
||||||
func TestUserService_Trophies(t *testing.T) {
|
func TestUserService_Trophies(t *testing.T) {
|
||||||
setup()
|
setup()
|
||||||
|
|||||||
Reference in New Issue
Block a user