diff --git a/account.go b/account.go index 003c783..01f7dd8 100644 --- a/account.go +++ b/account.go @@ -367,3 +367,28 @@ func (s *AccountService) Friends(ctx context.Context) ([]Relationship, *Response return root.Friends, resp, nil } + +type rootBlockedListing struct { + Kind string `json:"kind,omitempty"` + Data struct { + Blocked []Relationship `json:"children"` + } `json:"data"` +} + +// Blocked returns a list of your blocked users. +func (s *AccountService) Blocked(ctx context.Context) ([]Relationship, *Response, error) { + path := "prefs/blocked" + + req, err := s.client.NewRequest(http.MethodGet, path, nil) + if err != nil { + return nil, nil, err + } + + root := new(rootBlockedListing) + resp, err := s.client.Do(ctx, req, root) + if err != nil { + return nil, resp, err + } + + return root.Data.Blocked, resp, nil +} diff --git a/account_test.go b/account_test.go index a4849a5..3fc8679 100644 --- a/account_test.go +++ b/account_test.go @@ -97,7 +97,7 @@ var expectedSettings = &Settings{ EnableVideoAutoplay: Bool(true), } -var expectedFriends = []Relationship{ +var expectedRelationships = []Relationship{ { ID: "r9_1r4879", User: "test1", @@ -210,7 +210,23 @@ func TestAccountService_Friends(t *testing.T) { fmt.Fprint(w, blob) }) - friends, _, err := client.Account.Friends(ctx) + relationships, _, err := client.Account.Friends(ctx) assert.NoError(t, err) - assert.Equal(t, expectedFriends, friends) + assert.Equal(t, expectedRelationships, relationships) +} + +func TestAccountService_Blocked(t *testing.T) { + setup() + defer teardown() + + blob := readFileContents(t, "testdata/account/blocked.json") + + mux.HandleFunc("/prefs/blocked", func(w http.ResponseWriter, r *http.Request) { + assert.Equal(t, http.MethodGet, r.Method) + fmt.Fprint(w, blob) + }) + + relationships, _, err := client.Account.Blocked(ctx) + assert.NoError(t, err) + assert.Equal(t, expectedRelationships, relationships) } diff --git a/testdata/account/blocked.json b/testdata/account/blocked.json new file mode 100644 index 0000000..7177b87 --- /dev/null +++ b/testdata/account/blocked.json @@ -0,0 +1,19 @@ +{ + "kind": "UserList", + "data": { + "children": [ + { + "date": 1593362635, + "rel_id": "r9_1r4879", + "name": "test1", + "id": "t2_test1" + }, + { + "date": 1593362642, + "rel_id": "r9_1re930", + "name": "test2", + "id": "t2_test2" + } + ] + } +}