@@ -5,7 +5,6 @@ package moderator_change
5
5
6
6
import (
7
7
"encoding/json"
8
- "errors"
9
8
"time"
10
9
11
10
"github.com/twitchdev/twitch-cli/internal/events"
@@ -15,7 +14,7 @@ import (
15
14
16
15
var transportsSupported = map [string ]bool {
17
16
models .TransportWebSub : true ,
18
- models .TransportEventSub : false ,
17
+ models .TransportEventSub : true ,
19
18
}
20
19
21
20
var triggerSupported = []string {"add-moderator" , "remove-moderator" }
@@ -25,6 +24,10 @@ var triggerMapping = map[string]map[string]string{
25
24
"add-moderator" : "moderation.moderator.add" ,
26
25
"remove-moderator" : "moderation.moderator.remove" ,
27
26
},
27
+ models .TransportEventSub : {
28
+ "add-moderator" : "channel.moderator.add" ,
29
+ "remove-moderator" : "channel.moderator.remove" ,
30
+ },
28
31
}
29
32
30
33
type Event struct {}
@@ -35,7 +38,35 @@ func (e Event) GenerateEvent(params events.MockEventParameters) (events.MockEven
35
38
36
39
switch params .Transport {
37
40
case models .TransportEventSub :
38
- return events.MockEventResponse {}, errors .New ("Moderator change events are currently in beta on EventSub" )
41
+ body := * & models.EventsubResponse {
42
+ Subscription : models.EventsubSubscription {
43
+ ID : params .ID ,
44
+ Status : "enabled" ,
45
+ Type : triggerMapping [params.Transport ][params.Trigger ],
46
+ Version : "beta" ,
47
+ Condition : models.EventsubCondition {
48
+ BroadcasterUserID : params .ToUserID ,
49
+ },
50
+ Transport : models.EventsubTransport {
51
+ Method : "webhook" ,
52
+ Callback : "null" ,
53
+ },
54
+ CreatedAt : util .GetTimestamp ().Format (time .RFC3339Nano ),
55
+ },
56
+ Event : models.ModeratorChangeEventSubEvent {
57
+ UserID : params .FromUserID ,
58
+ UserLogin : params .FromUserName ,
59
+ UserName : params .FromUserName ,
60
+ BroadcasterUserID : params .ToUserID ,
61
+ BroadcasterUserLogin : params .ToUserName ,
62
+ BroadcasterUserName : params .ToUserName ,
63
+ },
64
+ }
65
+
66
+ event , err = json .Marshal (body )
67
+ if err != nil {
68
+ return events.MockEventResponse {}, err
69
+ }
39
70
case models .TransportWebSub :
40
71
body := * & models.ModeratorChangeWebSubResponse {
41
72
Data : []models.ModeratorChangeWebSubEvent {
0 commit comments