go-twitch/eventsub/webhook/messages/messages.go

101 lines
3.1 KiB
Go
Raw Permalink 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 messages
import (
"time"
"go.fifitido.net/twitch/api/eventsub"
)
type Message struct {
// An ID that uniquely identifies this message.
// This is an opaque ID, and is not required to be in any particular format.
Id string
// Twitch sends you a notification at least once.
// If Twitch is unsure of whether you received a notification, itll resend the event, which means you may receive a notification twice.
// If this is an issue for your implementation, see Handling duplicates for options: https://dev.twitch.tv/docs/eventsub#handling-duplicate-events
Retry string
// The type of notification.
Type Type
// The HMAC signature that you use to verify that Twitch sent the message.
// See Verifying the event message: https://dev.twitch.tv/docs/eventsub/handling-webhook-events/#verifying-the-event-message
Signature string
// The UTC date and time (in RFC3339 format) that Twitch sent the notification.
Timestamp time.Time
// The subscription type you subscribed to. For example, channel.follow.
SubscriptionType *eventsub.SubscriptionType
// The message data.
//
// For TypeNotification, this will be a Notification.
//
// For TypeWebhookCallbackVerification, this will be a WebhookCallbackVerification.
//
// For TypeRevocation, this will be a Revocation.
Data any
}
type Type string
const (
// notification — Contains the event's data.
// See Processing an event: https://dev.twitch.tv/docs/eventsub/handling-webhook-events/#processing-an-event
TypeNotification Type = "notification"
// webhook_callback_verification — Contains the challenge used to verify that you own the event handler.
// See Responding to a challenge request: https://dev.twitch.tv/docs/eventsub/handling-webhook-events/#responding-to-a-challenge-request
TypeWebhookCallbackVerification Type = "webhook_callback_verification"
// revocation — Contains the reason why Twitch revoked your subscription.
// See Revoking your subscription: https://dev.twitch.tv/docs/eventsub/handling-webhook-events/#revoking-your-subscription
TypeRevocation Type = "revocation"
)
type Subscription struct {
// Your client ID.
Id string `json:"id"`
// The notifications subscription type.
Type string `json:"type"`
// The version of the subscription.
Version string `json:"version"`
// The status of the subscription.
Status string `json:"status"`
// How much the subscription counts against your limit. See Subscription Limits for more information.
Cost int `json:"cost"`
// Subscription-specific parameters.
Condition map[string]any `json:"condition"`
// The time the notification was created.
CreatedAt string `json:"created_at"`
}
type Notification struct {
// Metadata about the subscription.
Subscription Subscription `json:"subscription"`
// The notifications event data..
Event any `json:"event"`
}
type Revocation struct {
// Metadata about the subscription.
Subscription Subscription `json:"subscription"`
}
type WebhookCallbackVerification struct {
// The challenge.
Challenge string `json:"challenge"`
// Metadata about the subscription.
Subscription Subscription `json:"subscription"`
}