diff --git a/accounts.go b/accounts.go index 0dd7fa3..c7967a0 100644 --- a/accounts.go +++ b/accounts.go @@ -241,3 +241,13 @@ func (c *Client) GetFollowRequests() ([]*Account, error) { } return accounts, nil } + +// FollowRequestAuthorize is authorize the follow request of user with id. +func (c *Client) FollowRequestAuthorize(id int64) error { + return c.doAPI(http.MethodPost, fmt.Sprintf("/api/v1/follow_requests/%d/authorize", id), nil, nil) +} + +// FollowRequestReject is rejects the follow request of user with id. +func (c *Client) FollowRequestReject(id int64) error { + return c.doAPI(http.MethodPost, fmt.Sprintf("/api/v1/follow_requests/%d/reject", id), nil, nil) +} diff --git a/accounts_test.go b/accounts_test.go index e7bc167..3bc55b2 100644 --- a/accounts_test.go +++ b/accounts_test.go @@ -155,3 +155,51 @@ func TestGetFollowRequests(t *testing.T) { t.Fatalf("want %q but %q", "bar", fReqs[0].Username) } } + +func TestFollowRequestAuthorize(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/api/v1/follow_requests/1234567/authorize" { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + } + })) + defer ts.Close() + + client := NewClient(&Config{ + Server: ts.URL, + ClientID: "foo", + ClientSecret: "bar", + AccessToken: "zoo", + }) + err := client.FollowRequestAuthorize(123) + if err == nil { + t.Fatalf("should be fail: %v", err) + } + err = client.FollowRequestAuthorize(1234567) + if err != nil { + t.Fatalf("should not be fail: %v", err) + } +} + +func TestFollowRequestReject(t *testing.T) { + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path != "/api/v1/follow_requests/1234567/reject" { + http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound) + } + })) + defer ts.Close() + + client := NewClient(&Config{ + Server: ts.URL, + ClientID: "foo", + ClientSecret: "bar", + AccessToken: "zoo", + }) + err := client.FollowRequestReject(123) + if err == nil { + t.Fatalf("should be fail: %v", err) + } + err = client.FollowRequestReject(1234567) + if err != nil { + t.Fatalf("should not be fail: %v", err) + } +}