Block and unblock by id

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian 2020-08-18 23:27:10 -04:00
parent 011cd2a78b
commit fbf7df5fe9
3 changed files with 75 additions and 75 deletions

View file

@ -286,18 +286,18 @@ func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) (*Res
}
// 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 != "" {
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 {
return "", err
return "", resp, err
}
c.redditID = fmt.Sprintf("%s_%s", kindAccount, self.ID)
return c.redditID, nil
return c.redditID, resp, nil
}
// DoRequest submits an HTTP request.

70
user.go
View file

@ -421,32 +421,32 @@ func (s *UserService) Block(ctx context.Context, username string) (*Blocked, *Re
return root, resp, nil
}
// // BlockByID blocks a user via their full id.
// func (s *UserService) BlockByID(ctx context.Context, id string) (*Blocked, *Response, error) {
// path := "api/block_user"
// BlockByID blocks a user via their full id.
func (s *UserService) BlockByID(ctx context.Context, id string) (*Blocked, *Response, error) {
path := "api/block_user"
// form := url.Values{}
// form.Set("account_id", id)
form := url.Values{}
form.Set("account_id", id)
// req, err := s.client.NewPostForm(path, form)
// if err != nil {
// return nil, nil, err
// }
req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
if err != nil {
return nil, nil, err
}
// root := new(Blocked)
// resp, err := s.client.Do(ctx, req, root)
// if err != nil {
// return nil, resp, err
// }
root := new(Blocked)
resp, err := s.client.Do(ctx, req, root)
if err != nil {
return nil, resp, err
}
// return root, resp, nil
// }
return root, resp, nil
}
// Unblock unblocks a user.
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 {
return nil, err
return resp, err
}
path := "api/unfriend"
@ -464,27 +464,27 @@ func (s *UserService) Unblock(ctx context.Context, username string) (*Response,
return s.client.Do(ctx, req, nil)
}
// // UnblockByID unblocks a user via their full id.
// func (s *UserService) UnblockByID(ctx context.Context, id string) (*Response, error) {
// selfID, err := s.client.GetRedditID(ctx)
// if err != nil {
// return nil, err
// }
// UnblockByID unblocks a user via their full id.
func (s *UserService) UnblockByID(ctx context.Context, id string) (*Response, error) {
selfID, resp, err := s.client.id(ctx)
if err != nil {
return resp, err
}
// path := "api/unfriend"
path := "api/unfriend"
// form := url.Values{}
// form.Set("id", id)
// form.Set("type", "enemy")
// form.Set("container", selfID)
form := url.Values{}
form.Set("id", id)
form.Set("type", "enemy")
form.Set("container", selfID)
// req, err := s.client.NewPostForm(path, form)
// if err != nil {
// return nil, err
// }
req, err := s.client.NewRequestWithForm(http.MethodPost, path, form)
if err != nil {
return nil, err
}
// return s.client.Do(ctx, req, nil)
// }
return s.client.Do(ctx, req, nil)
}
// Trophies returns a list of your trophies.
func (s *UserService) Trophies(ctx context.Context) ([]Trophy, *Response, error) {

View file

@ -813,30 +813,30 @@ func TestUserService_Block(t *testing.T) {
require.Equal(t, expectedBlocked, blocked)
}
// func TestUserService_BlockByID(t *testing.T) {
// setup()
// defer teardown()
func TestUserService_BlockByID(t *testing.T) {
setup()
defer teardown()
// blob, err := readFileContents("testdata/user/block.json")
// require.NoError(t,err)
blob, err := readFileContents("testdata/user/block.json")
require.NoError(t, err)
// mux.HandleFunc("/api/block_user", func(w http.ResponseWriter, r *http.Request) {
// require.Equal(t, http.MethodPost, r.Method)
mux.HandleFunc("/api/block_user", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
// form := url.Values{}
// form.Set("account_id", "abc123")
form := url.Values{}
form.Set("account_id", "abc123")
// err := r.ParseForm()
// require.NoError(t, err)
// require.Equal(t, form, r.Form)
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.Form)
// fmt.Fprint(w, blob)
// })
fmt.Fprint(w, blob)
})
// blocked, _, err := client.User.BlockByID(ctx, "abc123")
// require.NoError(t, err)
// require.Equal(t, expectedBlocked, blocked)
// }
blocked, _, err := client.User.BlockByID(ctx, "abc123")
require.NoError(t, err)
require.Equal(t, expectedBlocked, blocked)
}
func TestUserService_Unblock(t *testing.T) {
setup()
@ -861,28 +861,28 @@ func TestUserService_Unblock(t *testing.T) {
require.NoError(t, err)
}
// func TestUserService_UnblockByID(t *testing.T) {
// setup()
// defer teardown()
func TestUserService_UnblockByID(t *testing.T) {
setup()
defer teardown()
// client.redditID = "self123"
client.redditID = "self123"
// mux.HandleFunc("/api/unfriend", func(w http.ResponseWriter, r *http.Request) {
// require.Equal(t, http.MethodPost, r.Method)
mux.HandleFunc("/api/unfriend", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
// form := url.Values{}
// form.Set("id", "abc123")
// form.Set("type", "enemy")
// form.Set("container", client.redditID)
form := url.Values{}
form.Set("id", "abc123")
form.Set("type", "enemy")
form.Set("container", client.redditID)
// err := r.ParseForm()
// require.NoError(t, err)
// require.Equal(t, form, r.Form)
// })
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.Form)
})
// _, err := client.User.UnblockByID(ctx, "abc123")
// require.NoError(t, err)
// }
_, err := client.User.UnblockByID(ctx, "abc123")
require.NoError(t, err)
}
func TestUserService_Trophies(t *testing.T) {
setup()