go-twitch/api/moderation/delete_chat_messages.go

56 lines
1.6 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 moderation
import (
"context"
"fmt"
"net/http"
"github.com/google/go-querystring/query"
"go.fifitido.net/twitch/api/endpoint"
)
type DeleteChatMessagesParams struct {
// The ID of the broadcaster that owns the chat room to remove messages from.
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 message to remove. The id tag in the PRIVMSG tag contains the messages ID. Restrictions:
//
// - The message must have been created within the last 6 hours.
//
// - The message must not belong to the broadcaster.
//
// - The message must not belong to another moderator.
//
// If not specified, the request removes all messages in the broadcasters chat room.
MessageID *string `url:"message_id,omitempty"`
}
// Removes a single chat message or all chat messages from the broadcasters chat room.
//
// Requires a user access token that includes the moderator:manage:chat_messages scope.
func (m *Moderation) DeleteChatMessages(ctx context.Context, params *DeleteChatMessagesParams) error {
v, _ := query.Values(params)
req, err := http.NewRequestWithContext(ctx, http.MethodDelete, endpoint.Make(m.baseUrl, "moderation/chat", v), nil)
if err != nil {
return err
}
res, err := m.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 chat messages (%d)", res.StatusCode)
}
return nil
}