Skip to content

Commit e7d3e5e

Browse files
authored
Merge branch 'main' into enhancement/websub-deprecation
2 parents 61b4d90 + e42e618 commit e7d3e5e

File tree

24 files changed

+211
-7
lines changed

24 files changed

+211
-7
lines changed

internal/events/event.go

+3
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@ type MockEvent interface {
4444

4545
// Returns the string of the topic
4646
GetTopic(transport string, trigger string) string
47+
48+
// Returns back the correct "trigger" if using the eventsub topic
49+
GetEventSubAlias(trigger string) string
4750
}

internal/events/trigger/trigger_event.go

+14-6
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/twitchdev/twitch-cli/internal/database"
1212
"github.com/twitchdev/twitch-cli/internal/events"
1313
"github.com/twitchdev/twitch-cli/internal/events/types"
14+
"github.com/twitchdev/twitch-cli/internal/models"
1415
"github.com/twitchdev/twitch-cli/internal/util"
1516
)
1617

@@ -80,6 +81,13 @@ func Fire(p TriggerParameters) (string, error) {
8081
return "", err
8182
}
8283

84+
if eventParamaters.Transport == models.TransportEventSub {
85+
newTrigger := e.GetEventSubAlias(p.Event)
86+
if newTrigger != "" {
87+
eventParamaters.Trigger = newTrigger // overwrite the existing trigger with the "correct" one
88+
}
89+
}
90+
8391
resp, err = e.GenerateEvent(eventParamaters)
8492
if err != nil {
8593
return "", err
@@ -118,19 +126,19 @@ func Fire(p TriggerParameters) (string, error) {
118126
}
119127
defer resp.Body.Close()
120128

121-
body, err := ioutil.ReadAll(resp.Body)
122-
if err != nil {
123-
return "", err
124-
}
129+
body, err := ioutil.ReadAll(resp.Body)
130+
if err != nil {
131+
return "", err
132+
}
125133

126-
respTrigger := string(body)
134+
respTrigger := string(body)
127135
if resp.StatusCode >= 200 && resp.StatusCode <= 299 {
128136
color.New().Add(color.FgGreen).Println(fmt.Sprintf(`✔ Request Sent. Recieved Status Code: %v`, resp.StatusCode))
129137
color.New().Add(color.FgGreen).Println(fmt.Sprintf(`✔ Server Said: %s`, respTrigger))
130138
} else {
131139
color.New().Add(color.FgRed).Println(fmt.Sprintf(`✗ Invalid response. Recieved Status Code: %v`, resp.StatusCode))
132140
color.New().Add(color.FgRed).Println(fmt.Sprintf(`✗ Server Said: %s`, respTrigger))
133-
}
141+
}
134142
}
135143

136144
return string(resp.JSON), nil

internal/events/types/_template/_event_name.go

+9
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,12 @@ func (e Event) ValidTrigger(t string) bool {
6363
func (e Event) GetTopic(transport string, trigger string) string {
6464
return triggerMapping[transport][trigger]
6565
}
66+
func (e Event) GetEventSubAlias(t string) string {
67+
// check for aliases
68+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
69+
if topic == t {
70+
return trigger
71+
}
72+
}
73+
return ""
74+
}

internal/events/types/authorization/authorization.go

+9
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,12 @@ func (e Event) ValidTrigger(t string) bool {
9292
func (e Event) GetTopic(transport string, trigger string) string {
9393
return triggerMapping[transport][trigger]
9494
}
95+
func (e Event) GetEventSubAlias(t string) string {
96+
// check for aliases
97+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
98+
if topic == t {
99+
return trigger
100+
}
101+
}
102+
return ""
103+
}

internal/events/types/ban/ban.go

+9
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,12 @@ func (e Event) ValidTrigger(t string) bool {
103103
func (e Event) GetTopic(transport string, trigger string) string {
104104
return triggerMapping[transport][trigger]
105105
}
106+
func (e Event) GetEventSubAlias(t string) string {
107+
// check for aliases
108+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
109+
if topic == t {
110+
return trigger
111+
}
112+
}
113+
return ""
114+
}

internal/events/types/channel_points_redemption/redemption_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,12 @@ func (e Event) ValidTrigger(t string) bool {
116116
func (e Event) GetTopic(transport string, trigger string) string {
117117
return triggerMapping[transport][trigger]
118118
}
119+
func (e Event) GetEventSubAlias(t string) string {
120+
// check for aliases
121+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
122+
if topic == t {
123+
return trigger
124+
}
125+
}
126+
return ""
127+
}

internal/events/types/channel_points_reward/reward_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,12 @@ func (e Event) ValidTrigger(t string) bool {
130130
func (e Event) GetTopic(transport string, trigger string) string {
131131
return triggerMapping[transport][trigger]
132132
}
133+
func (e Event) GetEventSubAlias(t string) string {
134+
// check for aliases
135+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
136+
if topic == t {
137+
return trigger
138+
}
139+
}
140+
return ""
141+
}

internal/events/types/cheer/cheer_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,12 @@ func (e Event) ValidTrigger(t string) bool {
101101
func (e Event) GetTopic(transport string, trigger string) string {
102102
return triggerMapping[transport][trigger]
103103
}
104+
func (e Event) GetEventSubAlias(t string) string {
105+
// check for aliases
106+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
107+
if topic == t {
108+
return trigger
109+
}
110+
}
111+
return ""
112+
}

internal/events/types/drop/drop.go

+9
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,12 @@ func (e Event) ValidTrigger(t string) bool {
104104
func (e Event) GetTopic(transport string, trigger string) string {
105105
return triggerMapping[transport][trigger]
106106
}
107+
func (e Event) GetEventSubAlias(t string) string {
108+
// check for aliases
109+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
110+
if topic == t {
111+
return trigger
112+
}
113+
}
114+
return ""
115+
}

internal/events/types/extension_transaction/transaction_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -115,3 +115,12 @@ func (e Event) ValidTrigger(t string) bool {
115115
func (e Event) GetTopic(transport string, trigger string) string {
116116
return triggerMapping[transport][trigger]
117117
}
118+
func (e Event) GetEventSubAlias(t string) string {
119+
// check for aliases
120+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
121+
if topic == t {
122+
return trigger
123+
}
124+
}
125+
return ""
126+
}

internal/events/types/follow/follow_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,12 @@ func (e Event) ValidTrigger(trigger string) bool {
8888
func (e Event) GetTopic(transport string, trigger string) string {
8989
return triggerMapping[transport][trigger]
9090
}
91+
func (e Event) GetEventSubAlias(t string) string {
92+
// check for aliases
93+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
94+
if topic == t {
95+
return trigger
96+
}
97+
}
98+
return ""
99+
}

internal/events/types/gift/channel_gift.go

+9
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,12 @@ func (e Event) ValidTrigger(t string) bool {
105105
func (e Event) GetTopic(transport string, trigger string) string {
106106
return triggerMapping[transport][trigger]
107107
}
108+
func (e Event) GetEventSubAlias(t string) string {
109+
// check for aliases
110+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
111+
if topic == t {
112+
return trigger
113+
}
114+
}
115+
return ""
116+
}

internal/events/types/hype_train/hype_train_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,12 @@ func (e Event) ValidTrigger(t string) bool {
131131
func (e Event) GetTopic(transport string, trigger string) string {
132132
return triggerMapping[transport][trigger]
133133
}
134+
func (e Event) GetEventSubAlias(t string) string {
135+
// check for aliases
136+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
137+
if topic == t {
138+
return trigger
139+
}
140+
}
141+
return ""
142+
}

internal/events/types/moderator_change/moderator_change_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,12 @@ func (e Event) ValidTrigger(t string) bool {
9090
func (e Event) GetTopic(transport string, trigger string) string {
9191
return triggerMapping[transport][trigger]
9292
}
93+
func (e Event) GetEventSubAlias(t string) string {
94+
// check for aliases
95+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
96+
if topic == t {
97+
return trigger
98+
}
99+
}
100+
return ""
101+
}

internal/events/types/poll/poll.go

+9
Original file line numberDiff line numberDiff line change
@@ -129,3 +129,12 @@ func (e Event) GetTopic(transport string, trigger string) string {
129129
func intPointer(i int) *int {
130130
return &i
131131
}
132+
func (e Event) GetEventSubAlias(t string) string {
133+
// check for aliases
134+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
135+
if topic == t {
136+
return trigger
137+
}
138+
}
139+
return ""
140+
}

internal/events/types/prediction/prediction.go

+9
Original file line numberDiff line numberDiff line change
@@ -154,3 +154,12 @@ func (e Event) GetTopic(transport string, trigger string) string {
154154
func intPointer(i int) *int {
155155
return &i
156156
}
157+
func (e Event) GetEventSubAlias(t string) string {
158+
// check for aliases
159+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
160+
if topic == t {
161+
return trigger
162+
}
163+
}
164+
return ""
165+
}

internal/events/types/raid/raid.go

+9
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,12 @@ func (e Event) ValidTrigger(t string) bool {
8888
func (e Event) GetTopic(transport string, trigger string) string {
8989
return triggerMapping[transport][trigger]
9090
}
91+
func (e Event) GetEventSubAlias(t string) string {
92+
// check for aliases
93+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
94+
if topic == t {
95+
return trigger
96+
}
97+
}
98+
return ""
99+
}

internal/events/types/stream_change/stream_change_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,12 @@ func (e Event) ValidTrigger(t string) bool {
104104
func (e Event) GetTopic(transport string, trigger string) string {
105105
return triggerMapping[transport][trigger]
106106
}
107+
func (e Event) GetEventSubAlias(t string) string {
108+
// check for aliases
109+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
110+
if topic == t {
111+
return trigger
112+
}
113+
}
114+
return ""
115+
}

internal/events/types/streamdown/streamdown.go

+9
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,12 @@ func (e Event) ValidTrigger(t string) bool {
8484
func (e Event) GetTopic(transport string, trigger string) string {
8585
return triggerMapping[transport][trigger]
8686
}
87+
func (e Event) GetEventSubAlias(t string) string {
88+
// check for aliases
89+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
90+
if topic == t {
91+
return trigger
92+
}
93+
}
94+
return ""
95+
}

internal/events/types/streamup/streamup.go

+9
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,12 @@ func (e Event) ValidTrigger(t string) bool {
9595
func (e Event) GetTopic(transport string, trigger string) string {
9696
return triggerMapping[transport][trigger]
9797
}
98+
func (e Event) GetEventSubAlias(t string) string {
99+
// check for aliases
100+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
101+
if topic == t {
102+
return trigger
103+
}
104+
}
105+
return ""
106+
}

internal/events/types/subscribe/sub_event.go

+9
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,12 @@ func (e Event) ValidTrigger(t string) bool {
9898
func (e Event) GetTopic(transport string, trigger string) string {
9999
return triggerMapping[transport][trigger]
100100
}
101+
func (e Event) GetEventSubAlias(t string) string {
102+
// check for aliases
103+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
104+
if topic == t {
105+
return trigger
106+
}
107+
}
108+
return ""
109+
}

internal/events/types/subscription_message/subscription_message.go

+9
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,12 @@ func (e Event) ValidTrigger(t string) bool {
110110
func (e Event) GetTopic(transport string, trigger string) string {
111111
return triggerMapping[transport][trigger]
112112
}
113+
func (e Event) GetEventSubAlias(t string) string {
114+
// check for aliases
115+
for trigger, topic := range triggerMapping[models.TransportEventSub] {
116+
if topic == t {
117+
return trigger
118+
}
119+
}
120+
return ""
121+
}

internal/events/types/types.go

+7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"github.com/twitchdev/twitch-cli/internal/events/types/streamup"
2626
"github.com/twitchdev/twitch-cli/internal/events/types/subscribe"
2727
"github.com/twitchdev/twitch-cli/internal/events/types/subscription_message"
28+
"github.com/twitchdev/twitch-cli/internal/models"
2829
)
2930

3031
func All() []events.MockEvent {
@@ -53,6 +54,12 @@ func All() []events.MockEvent {
5354

5455
func GetByTriggerAndTransport(trigger string, transport string) (events.MockEvent, error) {
5556
for _, e := range All() {
57+
if transport == models.TransportEventSub {
58+
newTrigger := e.GetEventSubAlias(trigger)
59+
if newTrigger != "" {
60+
trigger = newTrigger
61+
}
62+
}
5663
if e.ValidTrigger(trigger) == true && e.ValidTransport(transport) == true {
5764
return e, nil
5865
}

internal/events/verify/subscription_verify.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,17 @@ func VerifyWebhookSubscription(p VerifyParameters) (VerifyResponse, error) {
3636
challenge := util.RandomGUID()
3737

3838
event, err := types.GetByTriggerAndTransport(p.Event, p.Transport)
39-
4039
if err != nil {
4140
return VerifyResponse{}, err
4241
}
4342

43+
if p.Transport == models.TransportEventSub {
44+
newTrigger := event.GetEventSubAlias(p.Event)
45+
if newTrigger != "" {
46+
p.Event = newTrigger
47+
}
48+
}
49+
4450
body, err := generateWebhookSubscriptionBody(p.Transport, event.GetTopic(p.Transport, p.Event), challenge, p.ForwardAddress)
4551
if err != nil {
4652
return VerifyResponse{}, err

0 commit comments

Comments
 (0)