diff --git a/eventsub.go b/eventsub.go index 2571292..c77b115 100644 --- a/eventsub.go +++ b/eventsub.go @@ -59,12 +59,13 @@ type EventSubSubscriptionsResponse struct { Data ManyEventSubSubscriptions } -// Parameter for filtering subscriptions, currently only the status is filterable +// Parameter for filtering subscriptions. The filters are mutually exclusive; the request fails if you specify more than one filter (except After). type EventSubSubscriptionsParams struct { - Status string `query:"status"` - Type string `query:"type"` - UserID string `query:"user_id"` - After string `query:"after"` + Status string `query:"status"` + Type string `query:"type"` + UserID string `query:"user_id"` + SubscriptionID string `query:"subscription_id"` + After string `query:"after"` } // Parameter for removing a subscription. @@ -956,7 +957,6 @@ func (c *Client) GetEventSubSubscriptions(params *EventSubSubscriptionsParams) ( // Remove an EventSub Subscription func (c *Client) RemoveEventSubSubscription(id string) (*RemoveEventSubSubscriptionParamsResponse, error) { - resp, err := c.delete("/eventsub/subscriptions", nil, &RemoveEventSubSubscriptionParams{ID: id}) if err != nil { return nil, err diff --git a/eventsub_test.go b/eventsub_test.go index db9e765..9574b91 100644 --- a/eventsub_test.go +++ b/eventsub_test.go @@ -23,6 +23,13 @@ func TestGetEventSubSubscriptions(t *testing.T) { 0, `{"error":"Unauthorized","status":401,"message":"OAuth token is missing"}`, }, + { + http.StatusBadRequest, + &Options{ClientID: "my-client-id"}, + &EventSubSubscriptionsParams{Status: "event-sub-status", Type: "event-sub-type", SubscriptionID: "event-sub-id", UserID: "user-id"}, + 0, + `{"error":"Bad Request","status":400,"message":"The request may specify only one filter query parameter. For example, either type or status or user_id."}`, + }, { http.StatusOK, &Options{ClientID: "my-client-id"}, @@ -37,6 +44,13 @@ func TestGetEventSubSubscriptions(t *testing.T) { 0, `{"total":1,"data":[],"limit":100000000,"max_total_cost":10000,"total_cost":1,"pagination":{}}`, }, + { + http.StatusOK, + &Options{ClientID: "my-client-id"}, + &EventSubSubscriptionsParams{SubscriptionID: "832389eb-0d0b-41f8-b564-da039f6c4c75"}, + 1, + `{"total":1,"data":[{"id":"832389eb-0d0b-41f8-b564-da039f6c4c75","status":"enabled","type":"channel.follow","version":"1","condition":{"broadcaster_user_id":"12345678"},"created_at":"2021-03-09T10:37:32.308415339Z","transport":{"method":"webhook","callback":"https://example.com/eventsub/follow"},"cost":1}],"limit":100000000,"max_total_cost":10000,"total_cost":1,"pagination":{}}`, + }, } for _, testCase := range testCases {