Skip to content

Commit 2b10cc2

Browse files
authored
Merge pull request #330 from BarryCarlyon/fix329
Fixes #329
2 parents 89451e5 + 64a102e commit 2b10cc2

File tree

39 files changed

+103
-82
lines changed

39 files changed

+103
-82
lines changed

cmd/events/retrigger.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func RetriggerCommand() (command *cobra.Command) {
1919
}
2020

2121
command.Flags().StringVarP(&forwardAddress, "forward-address", "F", "", "Forward address for mock event (webhook only).")
22-
command.Flags().StringVarP(&eventID, "id", "i", "", "ID of the event to be refired.")
22+
command.Flags().StringVarP(&eventMessageID, "id", "i", "", "ID of the event to be refired.")
2323
command.Flags().StringVarP(&secret, "secret", "s", "", "Webhook secret. If defined, signs all forwarded events with the SHA256 HMAC and must be 10-100 characters in length.")
2424
command.Flags().BoolVarP(&noConfig, "no-config", "D", false, "Disables the use of the configuration, if it exists.")
2525
command.MarkFlagRequired("id")
@@ -49,7 +49,8 @@ func retriggerCmdRun(cmd *cobra.Command, args []string) error {
4949
forwardAddress = defaults.ForwardAddress
5050
}
5151

52-
res, err := trigger.RefireEvent(eventID, trigger.TriggerParameters{
52+
//color.New().Add(color.FgGreen).Println(fmt.Sprintf(`Refire %v`, eventMessageID));
53+
res, err := trigger.RefireEvent(eventMessageID, trigger.TriggerParameters{
5354
ForwardAddress: forwardAddress,
5455
Secret: secret,
5556
Timestamp: util.GetTimestamp().Format(time.RFC3339Nano),

cmd/events/trigger.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ func TriggerCommand() (command *cobra.Command) {
4747
command.Flags().StringVarP(&description, "description", "d", "", "Title the stream should be updated with.")
4848
command.Flags().StringVarP(&gameID, "game-id", "G", "", "Sets the game/category ID for applicable events.")
4949
command.Flags().StringVarP(&tier, "tier", "", "", "Sets the subscription tier. Valid values are 1000, 2000, and 3000.")
50-
command.Flags().StringVarP(&eventID, "subscription-id", "u", "", "Manually set the subscription/event ID of the event itself.")
50+
command.Flags().StringVarP(&subscriptionID, "subscription-id", "u", "", "Manually set the subscription/event ID of the event itself.")
5151
command.Flags().StringVarP(&eventMessageID, "event-id", "I", "", "Manually set the Twitch-Eventsub-Message-Id header value for the event.")
5252
command.Flags().StringVar(&timestamp, "timestamp", "", "Sets the timestamp to be used in payloads and headers. Must be in RFC3339Nano format.")
5353
command.Flags().IntVar(&charityCurrentValue, "charity-current-value", 0, "Only used for \"charity-*\" events. Manually set the current dollar value for charity events.")
@@ -94,7 +94,7 @@ func triggerCmdRun(cmd *cobra.Command, args []string) error {
9494
for i := 0; i < count; i++ {
9595
res, err := trigger.Fire(trigger.TriggerParameters{
9696
Event: args[0],
97-
EventID: eventID,
97+
SubscriptionID: subscriptionID,
9898
EventMessageID: eventMessageID,
9999
Transport: transport,
100100
ForwardAddress: forwardAddress,

cmd/events/variables.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ var (
1010
fromUser string
1111
toUser string
1212
giftUser string
13-
eventID string
13+
subscriptionID string
1414
eventMessageID string
1515
secret string
1616
eventStatus string

cmd/events/verify_subscription.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func VerifySubscriptionCommand() (command *cobra.Command) {
3333
command.Flags().StringVarP(&transport, "transport", "T", "webhook", fmt.Sprintf("Preferred transport method for event. Defaults to EventSub.\nSupported values: %s", events.ValidTransports()))
3434
command.Flags().StringVarP(&secret, "secret", "s", "", "Webhook secret. If defined, signs all forwarded events with the SHA256 HMAC and must be 10-100 characters in length.")
3535
command.Flags().StringVar(&timestamp, "timestamp", "", "Sets the timestamp to be used in payloads and headers. Must be in RFC3339Nano format.")
36-
command.Flags().StringVarP(&eventID, "subscription-id", "u", "", "Manually set the subscription/event ID of the event itself.")
36+
command.Flags().StringVarP(&subscriptionID, "subscription-id", "u", "", "Manually set the subscription/event ID of the event itself.")
3737
command.Flags().StringVarP(&eventMessageID, "event-id", "I", "", "Manually set the Twitch-Eventsub-Message-Id header value for the event.")
3838
command.Flags().StringVarP(&version, "version", "v", "", "Chooses the EventSub version used for a specific event. Not required for most events.")
3939
command.Flags().BoolVarP(&noConfig, "no-config", "D", false, "Disables the use of the configuration, if it exists.")
@@ -91,8 +91,8 @@ https://dev.twitch.tv/docs/eventsub/handling-webhook-events#processing-an-event`
9191
ForwardAddress: forwardAddress,
9292
Secret: secret,
9393
Timestamp: timestamp,
94-
EventID: eventID,
9594
EventMessageID: eventMessageID,
95+
SubscriptionID: subscriptionID,
9696
BroadcasterUserID: toUser,
9797
Version: version,
9898
})

internal/events/event.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ package events
55
// MockEventParameters are used to craft the event; most of this data is prepopulated by lower services, such as the from/to users to avoid
66
// replicating logic across files
77
type MockEventParameters struct {
8-
ID string
8+
EventMessageID string
9+
SubscriptionID string
910
Transport string
1011
Trigger string
1112
FromUserID string

internal/events/trigger/forward_event.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func ForwardEvent(p ForwardParamters) (*http.Response, error) {
6868

6969
switch p.Transport {
7070
case models.TransportWebhook:
71-
req.Header.Set("Twitch-Eventsub-Message-Id", p.EventMessageID)
71+
req.Header.Set("Twitch-Eventsub-Message-Id", p.ID)
7272
req.Header.Set("Twitch-Eventsub-Subscription-Type", p.Event)
7373
req.Header.Set("Twitch-Eventsub-Subscription-Version", p.SubscriptionVersion)
7474
switch p.Type {

internal/events/trigger/retrigger_event_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ func TestRefireEvent(t *testing.T) {
2424
}))
2525
defer ts.Close()
2626

27+
var eventMessageID = "testtriggereventid";
28+
2729
params := TriggerParameters{
2830
Event: "gift",
31+
EventMessageID: eventMessageID,
2932
Transport: models.TransportWebhook,
3033
IsAnonymous: false,
3134
FromUser: "",
@@ -47,7 +50,7 @@ func TestRefireEvent(t *testing.T) {
4750
err = json.Unmarshal([]byte(response), &body)
4851
a.Nil(err)
4952

50-
json, err := RefireEvent(body.Subscription.ID, params)
53+
json, err := RefireEvent(eventMessageID, params)
5154
a.Nil(err)
5255
a.Equal(response, json)
5356
}

internal/events/trigger/trigger_event.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ type TriggerParameters struct {
4242
GameID string
4343
Tier string
4444
Timestamp string
45-
EventID string
45+
SubscriptionID string
4646
EventMessageID string
4747
CharityCurrentValue int
4848
CharityTargetValue int
@@ -99,10 +99,16 @@ func Fire(p TriggerParameters) (string, error) {
9999
"Valid values are 1000, 2000 or 3000")
100100
}
101101

102+
// the header twitch-eventsub-message-id
102103
if p.EventMessageID == "" {
103104
p.EventMessageID = util.RandomGUID()
104105
}
105106

107+
// the body subscription.id
108+
if p.SubscriptionID == "" {
109+
p.SubscriptionID = util.RandomGUID()
110+
}
111+
106112
if p.Timestamp == "" {
107113
p.Timestamp = util.GetTimestamp().Format(time.RFC3339Nano)
108114
} else {
@@ -117,7 +123,8 @@ https://dev.twitch.tv/docs/eventsub/handling-webhook-events#processing-an-event`
117123
}
118124

119125
eventParamaters := events.MockEventParameters{
120-
ID: p.EventID,
126+
SubscriptionID: p.SubscriptionID,
127+
EventMessageID: p.EventMessageID,
121128
Trigger: p.Event,
122129
Transport: p.Transport,
123130
FromUserID: p.FromUser,
@@ -162,6 +169,7 @@ https://dev.twitch.tv/docs/eventsub/handling-webhook-events#processing-an-event`
162169
return "", err
163170
}
164171

172+
//color.New().Add(color.FgGreen).Println(fmt.Sprintf(`Insert into DB with %v`, resp.ID));
165173
err = db.NewQuery(nil, 100).InsertIntoDB(database.EventCacheParameters{
166174
ID: resp.ID,
167175
Event: p.Event,

internal/events/types/_template/_event_name.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
6262
}
6363

6464
return events.MockEventResponse{
65-
ID: params.ID,
65+
ID: params.EventMessageID,
6666
JSON: event,
6767
FromUser: params.FromUserID,
6868
ToUser: params.ToUserID,

internal/events/types/ad_break/ad_break_begin.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
3737
case models.TransportWebhook, models.TransportWebSocket:
3838
body := models.EventsubResponse{
3939
Subscription: models.EventsubSubscription{
40-
ID: params.ID,
40+
ID: params.SubscriptionID,
4141
Status: params.SubscriptionStatus,
4242
Type: triggerMapping[params.Transport][params.Trigger],
4343
Version: e.SubscriptionVersion(),
@@ -89,7 +89,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
8989
}
9090

9191
return events.MockEventResponse{
92-
ID: params.ID,
92+
ID: params.EventMessageID,
9393
JSON: event,
9494
FromUser: params.FromUserID,
9595
ToUser: params.ToUserID,

internal/events/types/authorization_grant/grant.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
3333
case models.TransportWebhook:
3434
body := &models.AuthorizationRevokeEventSubResponse{
3535
Subscription: models.EventsubSubscription{
36-
ID: params.ID,
36+
ID: params.SubscriptionID,
3737
Status: params.SubscriptionStatus,
3838
Type: triggerMapping[params.Transport][params.Trigger],
3939
Version: e.SubscriptionVersion(),
@@ -79,7 +79,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
7979
}
8080

8181
return events.MockEventResponse{
82-
ID: params.ID,
82+
ID: params.EventMessageID,
8383
JSON: event,
8484
FromUser: params.FromUserID,
8585
ToUser: params.ToUserID,

internal/events/types/authorization_revoke/revoke.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
3636
case models.TransportWebhook, models.TransportWebSocket:
3737
body := &models.AuthorizationRevokeEventSubResponse{
3838
Subscription: models.EventsubSubscription{
39-
ID: params.ID,
39+
ID: params.SubscriptionID,
4040
Status: params.SubscriptionStatus,
4141
Type: triggerMapping[params.Transport][params.Trigger],
4242
Version: e.SubscriptionVersion(),
@@ -87,7 +87,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
8787
}
8888

8989
return events.MockEventResponse{
90-
ID: params.ID,
90+
ID: params.EventMessageID,
9191
JSON: event,
9292
FromUser: params.FromUserID,
9393
ToUser: params.ToUserID,

internal/events/types/ban/ban.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
110110

111111
body := models.EventsubResponse{
112112
Subscription: models.EventsubSubscription{
113-
ID: params.ID,
113+
ID: params.SubscriptionID,
114114
Status: params.SubscriptionStatus,
115115
Type: triggerMapping[params.Transport][params.Trigger],
116116
Version: e.SubscriptionVersion(),
@@ -152,7 +152,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
152152
}
153153

154154
return events.MockEventResponse{
155-
ID: params.ID,
155+
ID: params.EventMessageID,
156156
JSON: event,
157157
FromUser: params.FromUserID,
158158
ToUser: params.ToUserID,

internal/events/types/channel_points_redemption/redemption_event.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
5555
case models.TransportWebhook, models.TransportWebSocket:
5656
body := models.RedemptionEventSubResponse{
5757
Subscription: models.EventsubSubscription{
58-
ID: params.ID,
58+
ID: params.SubscriptionID,
5959
Status: params.SubscriptionStatus,
6060
Type: triggerMapping[params.Transport][params.Trigger],
6161
Version: e.SubscriptionVersion(),
@@ -70,7 +70,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
7070
CreatedAt: params.Timestamp,
7171
},
7272
Event: models.RedemptionEventSubEvent{
73-
ID: params.ID,
73+
ID: util.RandomGUID(),
7474
BroadcasterUserID: params.ToUserID,
7575
BroadcasterUserLogin: params.ToUserName,
7676
BroadcasterUserName: params.ToUserName,
@@ -114,7 +114,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
114114
}
115115

116116
return events.MockEventResponse{
117-
ID: params.ID,
117+
ID: params.EventMessageID,
118118
JSON: event,
119119
FromUser: params.FromUserID,
120120
ToUser: params.ToUserID,

internal/events/types/channel_points_reward/reward_event.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
"github.com/twitchdev/twitch-cli/internal/events"
1010
"github.com/twitchdev/twitch-cli/internal/models"
11+
"github.com/twitchdev/twitch-cli/internal/util"
1112
)
1213

1314
var transportsSupported = map[string]bool{
@@ -48,7 +49,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
4849
case models.TransportWebhook, models.TransportWebSocket:
4950
body := models.EventsubResponse{
5051
Subscription: models.EventsubSubscription{
51-
ID: params.ID,
52+
ID: params.SubscriptionID,
5253
Status: params.SubscriptionStatus,
5354
Type: triggerMapping[params.Transport][params.Trigger],
5455
Version: e.SubscriptionVersion(),
@@ -63,7 +64,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
6364
CreatedAt: params.Timestamp,
6465
},
6566
Event: models.RewardEventSubEvent{
66-
ID: params.ID,
67+
ID: util.RandomGUID(),
6768
BroadcasterUserID: params.ToUserID,
6869
BroadcasterUserLogin: params.ToUserName,
6970
BroadcasterUserName: params.ToUserName,
@@ -128,7 +129,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
128129
}
129130

130131
return events.MockEventResponse{
131-
ID: params.ID,
132+
ID: params.EventMessageID,
132133
JSON: event,
133134
FromUser: params.ToUserID,
134135
ToUser: params.ToUserID,

internal/events/types/channel_update_v1/channel_update.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
4949
body := &models.EventsubResponse{
5050
// make the eventsub response (if supported)
5151
Subscription: models.EventsubSubscription{
52-
ID: params.ID,
52+
ID: params.SubscriptionID,
5353
Status: params.SubscriptionStatus,
5454
Type: triggerMapping[params.Transport][params.Trigger],
5555
Version: e.SubscriptionVersion(),
@@ -99,7 +99,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
9999
}
100100

101101
return events.MockEventResponse{
102-
ID: params.ID,
102+
ID: params.EventMessageID,
103103
JSON: event,
104104
FromUser: params.FromUserID,
105105
ToUser: params.ToUserID,

internal/events/types/channel_update_v2/channel_update.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
4949
body := &models.EventsubResponse{
5050
// make the eventsub response (if supported)
5151
Subscription: models.EventsubSubscription{
52-
ID: params.ID,
52+
ID: params.SubscriptionID,
5353
Status: params.SubscriptionStatus,
5454
Type: triggerMapping[params.Transport][params.Trigger],
5555
Version: e.SubscriptionVersion(),
@@ -102,7 +102,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
102102
}
103103

104104
return events.MockEventResponse{
105-
ID: params.ID,
105+
ID: params.EventMessageID,
106106
JSON: event,
107107
FromUser: params.FromUserID,
108108
ToUser: params.ToUserID,

internal/events/types/charity/charity_event.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
139139
case models.TransportWebhook, models.TransportWebSocket:
140140
body := models.EventsubResponse{
141141
Subscription: models.EventsubSubscription{
142-
ID: params.ID,
142+
ID: params.SubscriptionID,
143143
Type: triggerMapping[params.Transport][params.Trigger],
144144
Version: e.SubscriptionVersion(),
145145
Status: params.SubscriptionStatus,
@@ -199,7 +199,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
199199
}
200200

201201
return events.MockEventResponse{
202-
ID: params.ID,
202+
ID: params.EventMessageID,
203203
JSON: event,
204204
ToUser: params.ToUserID,
205205
}, nil

internal/events/types/cheer/cheer_event.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
4545
case models.TransportWebhook, models.TransportWebSocket:
4646
body := models.EventsubResponse{
4747
Subscription: models.EventsubSubscription{
48-
ID: params.ID,
48+
ID: params.SubscriptionID,
4949
Status: params.SubscriptionStatus,
5050
Type: triggerMapping[params.Transport][params.Trigger],
5151
Version: e.SubscriptionVersion(),
@@ -97,7 +97,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
9797
}
9898

9999
return events.MockEventResponse{
100-
ID: params.ID,
100+
ID: params.EventMessageID,
101101
JSON: event,
102102
FromUser: params.FromUserID,
103103
ToUser: params.ToUserID,

internal/events/types/drop/drop.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
7878
}
7979
body := &models.DropsEntitlementEventSubResponse{
8080
Subscription: models.EventsubSubscription{
81-
ID: params.ID,
81+
ID: params.SubscriptionID,
8282
Status: params.SubscriptionStatus,
8383
Type: triggerMapping[params.Transport][params.Trigger],
8484
Version: e.SubscriptionVersion(),
@@ -121,7 +121,7 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
121121
}
122122

123123
return events.MockEventResponse{
124-
ID: params.ID,
124+
ID: params.EventMessageID,
125125
JSON: event,
126126
FromUser: params.FromUserID,
127127
ToUser: params.ToUserID,

0 commit comments

Comments
 (0)