go-twitch/api/gueststar/delete_gueststar_slot.go

60 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package gueststar
import (
"context"
"fmt"
"net/http"
"net/url"
"github.com/google/go-querystring/query"
)
type DeleteGuestStarSlotParams struct {
// The ID of the broadcaster running the Guest Star session.
BroadcasterID string `url:"broadcaster_id"`
// The ID of the broadcaster or a user that has permission to moderate the broadcasters chat room.
// This ID must match the user ID in the user access token.
ModeratorID string `url:"moderator_id"`
// The ID of the Guest Star session in which to remove the slot assignment.
SessionID string `url:"session_id"`
// The Twitch User ID corresponding to the guest to remove from the session.
// This user must already have an invite to this session, and have indicated that they are ready to join.
GuestID string `url:"guest_id"`
// The slot ID representing the slot assignment to remove from the session.
SlotID int `url:"slot_id"`
// Flag signaling that the guest should be reinvited to the session, sending them back to the invite queue.
ShouldReinviteGuest *bool `url:"should_reinvite_guest,omitempty"`
}
// Allows a caller to remove a slot assignment from a user participating in an active Guest Star session. This revokes their access to the session immediately and disables their access to publish or subscribe to media within the session.
//
// Query parameter moderator_id must match the user_id in the User-Access token
// Requires OAuth Scope: channel:manage:guest_star or moderator:manage:guest_star
func (g *GuestStar) DeleteGuestStarSlot(ctx context.Context, params *DeleteGuestStarSlotParams) error {
v, _ := query.Values(params)
endpoint := g.baseUrl.ResolveReference(&url.URL{Path: "guest_star/slot", RawQuery: v.Encode()})
req, err := http.NewRequestWithContext(ctx, http.MethodDelete, endpoint.String(), nil)
if err != nil {
return err
}
res, err := g.client.Do(req)
if err != nil {
return err
}
defer res.Body.Close()
statusOK := res.StatusCode >= 200 && res.StatusCode < 300
if !statusOK {
return fmt.Errorf("failed to delete guest star slot (%d)", res.StatusCode)
}
return nil
}