@@ -13,6 +13,8 @@ import (
13
13
14
14
const MOD_ADD = "moderation.moderator.add"
15
15
const MOD_REMOVE = "moderation.moderator.remove"
16
+ const BAN_ADD = "moderation.user.ban"
17
+ const BAN_REMOVE = "moderation.user.unban"
16
18
17
19
type Moderator struct {
18
20
UserID string `db:"user_id" json:"user_id"`
@@ -37,6 +39,11 @@ type ModeratorActionEvent struct {
37
39
UserName string `db:"user_name" json:"user_name"`
38
40
}
39
41
42
+ type BanEvent struct {
43
+ ModeratorAction
44
+ ExpiresAt * sql.NullString `db:"expires_at" json:"expires_at"`
45
+ }
46
+
40
47
func (c CLIDatabase ) GetModerationActionsByBroadcaster (broadcaster string ) ([]ModeratorAction , error ) {
41
48
var r []ModeratorAction
42
49
@@ -49,21 +56,23 @@ func (c CLIDatabase) GetModerationActionsByBroadcaster(broadcaster string) ([]Mo
49
56
return r , err
50
57
}
51
58
52
- func (c CLIDatabase ) AddModerator (broadcaster string , user string ) error {
59
+ func (c CLIDatabase ) AddModerator (p UserRequestParams ) error {
60
+ stmt := generateInsertSQL ("moderators" , "id" , p , false )
61
+ p .CreatedAt = util .GetTimestamp ().UTC ().Format (time .RFC3339 )
62
+
53
63
ma := ModeratorAction {
54
64
ID : util .RandomGUID (),
55
65
EventType : MOD_ADD ,
56
66
EventVersion : "1.0" ,
57
67
EventTimestamp : util .GetTimestamp ().Format (time .RFC3339 ),
58
68
ModeratorActionEvent : ModeratorActionEvent {
59
- UserID : user ,
60
- BroadcasterID : broadcaster ,
69
+ UserID : p . UserID ,
70
+ BroadcasterID : p . BroadcasterID ,
61
71
},
62
72
}
63
73
64
74
tx := c .DB .MustBegin ()
65
- tx .Exec (`insert into moderators values($1, $2, $3)` , broadcaster , user , util .GetTimestamp ().UTC ().Format (time .RFC3339 ))
66
-
75
+ tx .NamedExec (stmt , p )
67
76
tx .NamedExec (`INSERT INTO moderator_actions VALUES(:id, :event_type, :event_timestamp, :event_version, :broadcaster_id, :user_id)` , ma )
68
77
return tx .Commit ()
69
78
}
@@ -84,7 +93,7 @@ func (c CLIDatabase) GetModeratorsForBroadcaster(broadcasterID string, userID st
84
93
func (c CLIDatabase ) RemoveModerator (broadcaster string , user string ) error {
85
94
ma := ModeratorAction {
86
95
ID : util .RandomGUID (),
87
- EventType : MOD_REMOVE ,
96
+ EventType : BAN_ADD ,
88
97
EventVersion : "1.0" ,
89
98
EventTimestamp : util .GetTimestamp ().Format (time .RFC3339 ),
90
99
ModeratorActionEvent : ModeratorActionEvent {
@@ -98,3 +107,27 @@ func (c CLIDatabase) RemoveModerator(broadcaster string, user string) error {
98
107
tx .NamedExec (`INSERT INTO moderator_actions VALUES(:id, :event_type, :event_timestamp, :event_version, :broadcaster_id, :user_id)` , ma )
99
108
return tx .Commit ()
100
109
}
110
+
111
+ func (c CLIDatabase ) InsertBan (p UserRequestParams ) error {
112
+ stmt := generateInsertSQL ("bans" , "id" , p , false )
113
+ p .CreatedAt = util .GetTimestamp ().UTC ().Format (time .RFC3339 )
114
+
115
+ ma := BanEvent {
116
+ ModeratorAction : ModeratorAction {
117
+ ID : util .RandomGUID (),
118
+ EventType : BAN_ADD ,
119
+ EventVersion : "1.0" ,
120
+ EventTimestamp : util .GetTimestamp ().Format (time .RFC3339 ),
121
+ ModeratorActionEvent : ModeratorActionEvent {
122
+ UserID : p .UserID ,
123
+ BroadcasterID : p .BroadcasterID ,
124
+ },
125
+ },
126
+ ExpiresAt : & sql.NullString {String : "" },
127
+ }
128
+
129
+ tx := c .DB .MustBegin ()
130
+ tx .NamedExec (stmt , p )
131
+ tx .NamedExec (`INSERT INTO ban_events VALUES(:id, :event_type, :event_timestamp, :event_version, :broadcaster_id, :user_id, :expires_at)` , ma )
132
+ return tx .Commit ()
133
+ }
0 commit comments