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. // 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.

70
user.go
View file

@ -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) {

View file

@ -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()