Skip to content

Commit 28810f9

Browse files
authored
Merge pull request #213 from twitchdev/shoutouts-ga
EventSub Shoutouts GA
2 parents 46d6a37 + f0d8950 commit 28810f9

30 files changed

Lines changed: 199 additions & 75 deletions

File tree

cmd/events.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/twitchdev/twitch-cli/internal/events"
1313
"github.com/twitchdev/twitch-cli/internal/events/mock_wss_server"
1414
"github.com/twitchdev/twitch-cli/internal/events/trigger"
15+
"github.com/twitchdev/twitch-cli/internal/events/types"
1516
"github.com/twitchdev/twitch-cli/internal/events/verify"
1617
"github.com/twitchdev/twitch-cli/internal/util"
1718
)
@@ -55,9 +56,9 @@ var triggerCmd = &cobra.Command{
5556
Short: "Creates mock events that can be forwarded to a local webserver for event testing.",
5657
Long: fmt.Sprintf(`Creates mock events that can be forwarded to a local webserver for event testing.
5758
Supported:
58-
%s`, events.ValidTriggers()),
59+
%s`, types.AllEventTopics()),
5960
Args: cobra.MaximumNArgs(1),
60-
ValidArgs: events.ValidTriggers(),
61+
ValidArgs: types.AllEventTopics(),
6162
Run: triggerCmdRun,
6263
Example: `twitch event trigger subscribe`,
6364
Aliases: []string{
@@ -70,9 +71,9 @@ var verifyCmd = &cobra.Command{
7071
Short: "Mocks the subscription verification event. Can be forwarded to a local webserver for testing.",
7172
Long: fmt.Sprintf(`Mocks the subscription verification event that can be forwarded to a local webserver for testing.
7273
Supported:
73-
%s`, events.ValidTriggers()),
74+
%s`, types.AllEventTopics()),
7475
Args: cobra.MaximumNArgs(1),
75-
ValidArgs: events.ValidTriggers(),
76+
ValidArgs: types.AllEventTopics(),
7677
Run: verifyCmdRun,
7778
Example: `twitch event verify-subscription subscribe`,
7879
Aliases: []string{

internal/events/cmd_helpers.go

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,9 @@
22
// SPDX-License-Identifier: Apache-2.0
33
package events
44

5-
import "sort"
6-
7-
func ValidTriggers() []string {
8-
names := []string{}
9-
10-
for name, enabled := range triggerSupported {
11-
if enabled == true {
12-
names = append(names, name)
13-
}
14-
}
15-
sort.Strings(names)
16-
17-
return names
18-
}
5+
import (
6+
"sort"
7+
)
198

209
func ValidTransports() []string {
2110
names := []string{}

internal/events/cmd_helpers_test.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,6 @@ import (
88
"github.com/twitchdev/twitch-cli/test_setup"
99
)
1010

11-
func TestValidTriggers(t *testing.T) {
12-
a := test_setup.SetupTestEnv(t)
13-
14-
t1 := ValidTriggers()
15-
a.NotEmpty(t1)
16-
}
17-
1811
func TestValidTransports(t *testing.T) {
1912
a := test_setup.SetupTestEnv(t)
2013

internal/events/event.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ type MockEvent interface {
4747
// Returns whether a given event supports a supplied transport
4848
ValidTransport(transport string) bool
4949

50+
// Returns
51+
GetAllTopicsByTransport(transport string) []string
52+
5053
// Returns the string of the topic
5154
GetTopic(transport string, trigger string) string
5255

internal/events/models.go

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,6 @@
22
// SPDX-License-Identifier: Apache-2.0
33
package events
44

5-
var triggerSupported = map[string]bool{
6-
"add-moderator": true,
7-
"add-redemption": true,
8-
"add-reward": true,
9-
"ban": true,
10-
"charity-donate": true,
11-
"charity-progress": true,
12-
"charity-start": true,
13-
"charity-stop": true,
14-
"cheer": true,
15-
"drop": true,
16-
"follow": true,
17-
"gift": true,
18-
"goal-begin": true,
19-
"goal-end": true,
20-
"goal-progress": true,
21-
"grant": true,
22-
"hype-train-begin": true,
23-
"hype-train-end": true,
24-
"hype-train-progress": true,
25-
"poll-begin": true,
26-
"poll-progress": true,
27-
"poll-end": true,
28-
"prediction-begin": true,
29-
"prediction-progress": true,
30-
"prediction-lock": true,
31-
"prediction-end": true,
32-
"raid": true,
33-
"remove-moderator": true,
34-
"remove-reward": true,
35-
"revoke": true,
36-
"shield-mode-begin": true,
37-
"shield-mode-end": true,
38-
"shoutout-create": true,
39-
"shoutout-received": true,
40-
"stream-change": true,
41-
"streamdown": true,
42-
"streamup": true,
43-
"subscribe": true,
44-
"transaction": true,
45-
"unban": true,
46-
"unsubscribe": true,
47-
"update-redemption": true,
48-
"update-reward": true,
49-
"user-update": true,
50-
}
51-
525
var transportSupported = map[string]bool{
536
"websub": false,
547
"eventsub": true,

internal/events/types/authorization/authorization.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,13 @@ func (e Event) ValidTrigger(t string) bool {
108108
func (e Event) GetTopic(transport string, trigger string) string {
109109
return triggerMapping[transport][trigger]
110110
}
111+
func (e Event) GetAllTopicsByTransport(transport string) []string {
112+
allTopics := []string{}
113+
for _, topic := range triggerMapping[transport] {
114+
allTopics = append(allTopics, topic)
115+
}
116+
return allTopics
117+
}
111118
func (e Event) GetEventSubAlias(t string) string {
112119
// check for aliases
113120
for trigger, topic := range triggerMapping[models.TransportEventSub] {

internal/events/types/ban/ban.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@ 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) GetAllTopicsByTransport(transport string) []string {
135+
allTopics := []string{}
136+
for _, topic := range triggerMapping[transport] {
137+
allTopics = append(allTopics, topic)
138+
}
139+
return allTopics
140+
}
134141
func (e Event) GetEventSubAlias(t string) string {
135142
// check for aliases
136143
for trigger, topic := range triggerMapping[models.TransportEventSub] {

internal/events/types/channel_points_redemption/redemption_event.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@ 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) GetAllTopicsByTransport(transport string) []string {
135+
allTopics := []string{}
136+
for _, topic := range triggerMapping[transport] {
137+
allTopics = append(allTopics, topic)
138+
}
139+
return allTopics
140+
}
134141
func (e Event) GetEventSubAlias(t string) string {
135142
// check for aliases
136143
for trigger, topic := range triggerMapping[models.TransportEventSub] {

internal/events/types/channel_points_reward/reward_event.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ func (e Event) ValidTrigger(t string) bool {
144144
func (e Event) GetTopic(transport string, trigger string) string {
145145
return triggerMapping[transport][trigger]
146146
}
147+
func (e Event) GetAllTopicsByTransport(transport string) []string {
148+
allTopics := []string{}
149+
for _, topic := range triggerMapping[transport] {
150+
allTopics = append(allTopics, topic)
151+
}
152+
return allTopics
153+
}
147154
func (e Event) GetEventSubAlias(t string) string {
148155
// check for aliases
149156
for trigger, topic := range triggerMapping[models.TransportEventSub] {

internal/events/types/charity/charity_event.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,13 @@ func (e Event) ValidTrigger(trigger string) bool {
219219
func (e Event) GetTopic(transport string, trigger string) string {
220220
return triggerMapping[transport][trigger]
221221
}
222+
func (e Event) GetAllTopicsByTransport(transport string) []string {
223+
allTopics := []string{}
224+
for _, topic := range triggerMapping[transport] {
225+
allTopics = append(allTopics, topic)
226+
}
227+
return allTopics
228+
}
222229
func (e Event) GetEventSubAlias(t string) string {
223230
// check for aliases
224231
for trigger, topic := range triggerMapping[models.TransportEventSub] {

0 commit comments

Comments
 (0)