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__"
|
rateLimitEventType = "__RATE_LIMIT__"
|
||||||
readyEventType = "READY"
|
readyEventType = "READY"
|
||||||
resumedEventType = "RESUMED"
|
resumedEventType = "RESUMED"
|
||||||
subscriptionCreateEventType = "SUBSCRIPTION_CREATE"
|
|
||||||
subscriptionUpdateEventType = "SUBSCRIPTION_UPDATE"
|
|
||||||
stageInstanceEventCreateEventType = "STAGE_INSTANCE_EVENT_CREATE"
|
stageInstanceEventCreateEventType = "STAGE_INSTANCE_EVENT_CREATE"
|
||||||
stageInstanceEventDeleteEventType = "STAGE_INSTANCE_EVENT_DELETE"
|
stageInstanceEventDeleteEventType = "STAGE_INSTANCE_EVENT_DELETE"
|
||||||
stageInstanceEventUpdateEventType = "STAGE_INSTANCE_EVENT_UPDATE"
|
stageInstanceEventUpdateEventType = "STAGE_INSTANCE_EVENT_UPDATE"
|
||||||
|
subscriptionCreateEventType = "SUBSCRIPTION_CREATE"
|
||||||
|
subscriptionDeleteEventType = "SUBSCRIPTION_DELETE"
|
||||||
|
subscriptionUpdateEventType = "SUBSCRIPTION_UPDATE"
|
||||||
threadCreateEventType = "THREAD_CREATE"
|
threadCreateEventType = "THREAD_CREATE"
|
||||||
threadDeleteEventType = "THREAD_DELETE"
|
threadDeleteEventType = "THREAD_DELETE"
|
||||||
threadListSyncEventType = "THREAD_LIST_SYNC"
|
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.
|
// stageInstanceEventCreateEventHandler is an event handler for StageInstanceEventCreate events.
|
||||||
type stageInstanceEventCreateEventHandler func(*Session, *StageInstanceEventCreate)
|
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.
|
// threadCreateEventHandler is an event handler for ThreadCreate events.
|
||||||
type threadCreateEventHandler func(*Session, *ThreadCreate)
|
type threadCreateEventHandler func(*Session, *ThreadCreate)
|
||||||
|
|
||||||
|
@ -1594,16 +1615,18 @@ func handlerForInterface(handler interface{}) EventHandler {
|
||||||
return readyEventHandler(v)
|
return readyEventHandler(v)
|
||||||
case func(*Session, *Resumed):
|
case func(*Session, *Resumed):
|
||||||
return resumedEventHandler(v)
|
return resumedEventHandler(v)
|
||||||
case func(*Session, *SubscriptionCreate):
|
|
||||||
return subscriptionCreateEventHandler(v)
|
|
||||||
case func(*Session, *SubscriptionUpdate):
|
|
||||||
return subscriptionUpdateEventHandler(v)
|
|
||||||
case func(*Session, *StageInstanceEventCreate):
|
case func(*Session, *StageInstanceEventCreate):
|
||||||
return stageInstanceEventCreateEventHandler(v)
|
return stageInstanceEventCreateEventHandler(v)
|
||||||
case func(*Session, *StageInstanceEventDelete):
|
case func(*Session, *StageInstanceEventDelete):
|
||||||
return stageInstanceEventDeleteEventHandler(v)
|
return stageInstanceEventDeleteEventHandler(v)
|
||||||
case func(*Session, *StageInstanceEventUpdate):
|
case func(*Session, *StageInstanceEventUpdate):
|
||||||
return stageInstanceEventUpdateEventHandler(v)
|
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):
|
case func(*Session, *ThreadCreate):
|
||||||
return threadCreateEventHandler(v)
|
return threadCreateEventHandler(v)
|
||||||
case func(*Session, *ThreadDelete):
|
case func(*Session, *ThreadDelete):
|
||||||
|
@ -1683,11 +1706,12 @@ func init() {
|
||||||
registerInterfaceProvider(presencesReplaceEventHandler(nil))
|
registerInterfaceProvider(presencesReplaceEventHandler(nil))
|
||||||
registerInterfaceProvider(readyEventHandler(nil))
|
registerInterfaceProvider(readyEventHandler(nil))
|
||||||
registerInterfaceProvider(resumedEventHandler(nil))
|
registerInterfaceProvider(resumedEventHandler(nil))
|
||||||
registerInterfaceProvider(subscriptionCreateEventHandler(nil))
|
|
||||||
registerInterfaceProvider(subscriptionUpdateEventHandler(nil))
|
|
||||||
registerInterfaceProvider(stageInstanceEventCreateEventHandler(nil))
|
registerInterfaceProvider(stageInstanceEventCreateEventHandler(nil))
|
||||||
registerInterfaceProvider(stageInstanceEventDeleteEventHandler(nil))
|
registerInterfaceProvider(stageInstanceEventDeleteEventHandler(nil))
|
||||||
registerInterfaceProvider(stageInstanceEventUpdateEventHandler(nil))
|
registerInterfaceProvider(stageInstanceEventUpdateEventHandler(nil))
|
||||||
|
registerInterfaceProvider(subscriptionCreateEventHandler(nil))
|
||||||
|
registerInterfaceProvider(subscriptionDeleteEventHandler(nil))
|
||||||
|
registerInterfaceProvider(subscriptionUpdateEventHandler(nil))
|
||||||
registerInterfaceProvider(threadCreateEventHandler(nil))
|
registerInterfaceProvider(threadCreateEventHandler(nil))
|
||||||
registerInterfaceProvider(threadDeleteEventHandler(nil))
|
registerInterfaceProvider(threadDeleteEventHandler(nil))
|
||||||
registerInterfaceProvider(threadListSyncEventHandler(nil))
|
registerInterfaceProvider(threadListSyncEventHandler(nil))
|
||||||
|
|
|
@ -473,3 +473,9 @@ type SubscriptionCreate struct {
|
||||||
type SubscriptionUpdate struct {
|
type SubscriptionUpdate struct {
|
||||||
*Subscription
|
*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