feat: add SubscriptionDelete event (#1607)
This commit is contained in:
parent
7f344fbe5e
commit
1270b0f9cf
2 changed files with 78 additions and 48 deletions
120
eventhandlers.go
120
eventhandlers.go
|
@ -62,11 +62,12 @@ const (
|
|||
rateLimitEventType = "__RATE_LIMIT__"
|
||||
readyEventType = "READY"
|
||||
resumedEventType = "RESUMED"
|
||||
subscriptionCreateEventType = "SUBSCRIPTION_CREATE"
|
||||
subscriptionUpdateEventType = "SUBSCRIPTION_UPDATE"
|
||||
stageInstanceEventCreateEventType = "STAGE_INSTANCE_EVENT_CREATE"
|
||||
stageInstanceEventDeleteEventType = "STAGE_INSTANCE_EVENT_DELETE"
|
||||
stageInstanceEventUpdateEventType = "STAGE_INSTANCE_EVENT_UPDATE"
|
||||
subscriptionCreateEventType = "SUBSCRIPTION_CREATE"
|
||||
subscriptionDeleteEventType = "SUBSCRIPTION_DELETE"
|
||||
subscriptionUpdateEventType = "SUBSCRIPTION_UPDATE"
|
||||
threadCreateEventType = "THREAD_CREATE"
|
||||
threadDeleteEventType = "THREAD_DELETE"
|
||||
threadListSyncEventType = "THREAD_LIST_SYNC"
|
||||
|
@ -1160,46 +1161,6 @@ func (eh resumedEventHandler) Handle(s *Session, i interface{}) {
|
|||
}
|
||||
}
|
||||
|
||||
// subscriptionCreateEventHandler is an event handler for SubscriptionCreate events.
|
||||
type subscriptionCreateEventHandler func(*Session, *SubscriptionCreate)
|
||||
|
||||
// Type returns the event type for SubscriptionCreate events.
|
||||
func (eh subscriptionCreateEventHandler) Type() string {
|
||||
return subscriptionCreateEventType
|
||||
}
|
||||
|
||||
// New returns a new instance of SubscriptionCreate.
|
||||
func (eh subscriptionCreateEventHandler) New() interface{} {
|
||||
return &SubscriptionCreate{}
|
||||
}
|
||||
|
||||
// Handle is the handler for SubscriptionCreate events.
|
||||
func (eh subscriptionCreateEventHandler) Handle(s *Session, i interface{}) {
|
||||
if t, ok := i.(*SubscriptionCreate); ok {
|
||||
eh(s, t)
|
||||
}
|
||||
}
|
||||
|
||||
// subscriptionUpdateEventHandler is an event handler for SubscriptionUpdate events.
|
||||
type subscriptionUpdateEventHandler func(*Session, *SubscriptionUpdate)
|
||||
|
||||
// Type returns the event type for SubscriptionCreate events.
|
||||
func (eh subscriptionUpdateEventHandler) Type() string {
|
||||
return subscriptionUpdateEventType
|
||||
}
|
||||
|
||||
// New returns a new instance of SubscriptionUpdate.
|
||||
func (eh subscriptionUpdateEventHandler) New() interface{} {
|
||||
return &SubscriptionUpdate{}
|
||||
}
|
||||
|
||||
// Handle is the handler for SubscriptionUpdate events.
|
||||
func (eh subscriptionUpdateEventHandler) Handle(s *Session, i interface{}) {
|
||||
if t, ok := i.(*SubscriptionUpdate); ok {
|
||||
eh(s, t)
|
||||
}
|
||||
}
|
||||
|
||||
// stageInstanceEventCreateEventHandler is an event handler for StageInstanceEventCreate events.
|
||||
type stageInstanceEventCreateEventHandler func(*Session, *StageInstanceEventCreate)
|
||||
|
||||
|
@ -1260,6 +1221,66 @@ func (eh stageInstanceEventUpdateEventHandler) Handle(s *Session, i interface{})
|
|||
}
|
||||
}
|
||||
|
||||
// subscriptionCreateEventHandler is an event handler for SubscriptionCreate events.
|
||||
type subscriptionCreateEventHandler func(*Session, *SubscriptionCreate)
|
||||
|
||||
// Type returns the event type for SubscriptionCreate events.
|
||||
func (eh subscriptionCreateEventHandler) Type() string {
|
||||
return subscriptionCreateEventType
|
||||
}
|
||||
|
||||
// New returns a new instance of SubscriptionCreate.
|
||||
func (eh subscriptionCreateEventHandler) New() interface{} {
|
||||
return &SubscriptionCreate{}
|
||||
}
|
||||
|
||||
// Handle is the handler for SubscriptionCreate events.
|
||||
func (eh subscriptionCreateEventHandler) Handle(s *Session, i interface{}) {
|
||||
if t, ok := i.(*SubscriptionCreate); ok {
|
||||
eh(s, t)
|
||||
}
|
||||
}
|
||||
|
||||
// subscriptionDeleteEventHandler is an event handler for SubscriptionDelete events.
|
||||
type subscriptionDeleteEventHandler func(*Session, *SubscriptionDelete)
|
||||
|
||||
// Type returns the event type for SubscriptionDelete events.
|
||||
func (eh subscriptionDeleteEventHandler) Type() string {
|
||||
return subscriptionDeleteEventType
|
||||
}
|
||||
|
||||
// New returns a new instance of SubscriptionDelete.
|
||||
func (eh subscriptionDeleteEventHandler) New() interface{} {
|
||||
return &SubscriptionDelete{}
|
||||
}
|
||||
|
||||
// Handle is the handler for SubscriptionDelete events.
|
||||
func (eh subscriptionDeleteEventHandler) Handle(s *Session, i interface{}) {
|
||||
if t, ok := i.(*SubscriptionDelete); ok {
|
||||
eh(s, t)
|
||||
}
|
||||
}
|
||||
|
||||
// subscriptionUpdateEventHandler is an event handler for SubscriptionUpdate events.
|
||||
type subscriptionUpdateEventHandler func(*Session, *SubscriptionUpdate)
|
||||
|
||||
// Type returns the event type for SubscriptionUpdate events.
|
||||
func (eh subscriptionUpdateEventHandler) Type() string {
|
||||
return subscriptionUpdateEventType
|
||||
}
|
||||
|
||||
// New returns a new instance of SubscriptionUpdate.
|
||||
func (eh subscriptionUpdateEventHandler) New() interface{} {
|
||||
return &SubscriptionUpdate{}
|
||||
}
|
||||
|
||||
// Handle is the handler for SubscriptionUpdate events.
|
||||
func (eh subscriptionUpdateEventHandler) Handle(s *Session, i interface{}) {
|
||||
if t, ok := i.(*SubscriptionUpdate); ok {
|
||||
eh(s, t)
|
||||
}
|
||||
}
|
||||
|
||||
// threadCreateEventHandler is an event handler for ThreadCreate events.
|
||||
type threadCreateEventHandler func(*Session, *ThreadCreate)
|
||||
|
||||
|
@ -1594,16 +1615,18 @@ func handlerForInterface(handler interface{}) EventHandler {
|
|||
return readyEventHandler(v)
|
||||
case func(*Session, *Resumed):
|
||||
return resumedEventHandler(v)
|
||||
case func(*Session, *SubscriptionCreate):
|
||||
return subscriptionCreateEventHandler(v)
|
||||
case func(*Session, *SubscriptionUpdate):
|
||||
return subscriptionUpdateEventHandler(v)
|
||||
case func(*Session, *StageInstanceEventCreate):
|
||||
return stageInstanceEventCreateEventHandler(v)
|
||||
case func(*Session, *StageInstanceEventDelete):
|
||||
return stageInstanceEventDeleteEventHandler(v)
|
||||
case func(*Session, *StageInstanceEventUpdate):
|
||||
return stageInstanceEventUpdateEventHandler(v)
|
||||
case func(*Session, *SubscriptionCreate):
|
||||
return subscriptionCreateEventHandler(v)
|
||||
case func(*Session, *SubscriptionDelete):
|
||||
return subscriptionDeleteEventHandler(v)
|
||||
case func(*Session, *SubscriptionUpdate):
|
||||
return subscriptionUpdateEventHandler(v)
|
||||
case func(*Session, *ThreadCreate):
|
||||
return threadCreateEventHandler(v)
|
||||
case func(*Session, *ThreadDelete):
|
||||
|
@ -1683,11 +1706,12 @@ func init() {
|
|||
registerInterfaceProvider(presencesReplaceEventHandler(nil))
|
||||
registerInterfaceProvider(readyEventHandler(nil))
|
||||
registerInterfaceProvider(resumedEventHandler(nil))
|
||||
registerInterfaceProvider(subscriptionCreateEventHandler(nil))
|
||||
registerInterfaceProvider(subscriptionUpdateEventHandler(nil))
|
||||
registerInterfaceProvider(stageInstanceEventCreateEventHandler(nil))
|
||||
registerInterfaceProvider(stageInstanceEventDeleteEventHandler(nil))
|
||||
registerInterfaceProvider(stageInstanceEventUpdateEventHandler(nil))
|
||||
registerInterfaceProvider(subscriptionCreateEventHandler(nil))
|
||||
registerInterfaceProvider(subscriptionDeleteEventHandler(nil))
|
||||
registerInterfaceProvider(subscriptionUpdateEventHandler(nil))
|
||||
registerInterfaceProvider(threadCreateEventHandler(nil))
|
||||
registerInterfaceProvider(threadDeleteEventHandler(nil))
|
||||
registerInterfaceProvider(threadListSyncEventHandler(nil))
|
||||
|
|
|
@ -473,3 +473,9 @@ type SubscriptionCreate struct {
|
|||
type SubscriptionUpdate struct {
|
||||
*Subscription
|
||||
}
|
||||
|
||||
// SubscriptionDelete is the data for an SubscriptionDelete event.
|
||||
// https://discord.com/developers/docs/monetization/implementing-app-subscriptions#using-subscription-events-for-the-subscription-lifecycle
|
||||
type SubscriptionDelete struct {
|
||||
*Subscription
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue