Skip to content

Commit 98df51e

Browse files
committed
GET /bits/cheermotes provides proper data format; Check AutoMod Status no longer needs user_id; /moderation/banned/events and /moderation/moderators/events removed; Get Banned Users now includes created_at field; Get Moderators includes channel:manager:moderators scope
1 parent 9acd6b4 commit 98df51e

File tree

8 files changed

+13
-263
lines changed

8 files changed

+13
-263
lines changed

internal/database/moderation.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ type Ban struct {
6565
UserLogin string `db:"user_login" json:"user_login"`
6666
UserName string `db:"user_name" json:"user_name"`
6767
ExpiresAt *string `db:"expires_at" json:"expires_at"`
68+
CreatedAt string `db:"created_at" json:"created_at"`
6869
Reason string `json:"reason"`
6970
ModeratorID string `json:"moderator_id"`
7071
ModeratorUserLogin string `json:"moderator_login"`
@@ -184,7 +185,7 @@ func (q *Query) InsertBan(p UserRequestParams) error {
184185

185186
func (q *Query) GetBans(p UserRequestParams) (*DBResponse, error) {
186187
r := []Ban{}
187-
stmt := generateSQL("select b.user_id, b.expires_at, u1.display_name as user_name, u1.user_login from bans b join users u1 on b.user_id=u1.id", p, SEP_AND)
188+
stmt := generateSQL("select b.user_id, b.expires_at, b.created_at, u1.display_name as user_name, u1.user_login from bans b join users u1 on b.user_id=u1.id", p, SEP_AND)
188189
rows, err := q.DB.NamedQuery(stmt+q.SQL, p)
189190
if err != nil {
190191
return nil, err

internal/mock_api/endpoints/bits/cheermotes.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ var cheermotesScopesByMethod = map[string][]string{
3232
type Cheermotes struct{}
3333

3434
type CheermotesResponse struct {
35+
Data []CheermotesResponseData `json:"data"`
36+
}
37+
38+
type CheermotesResponseData struct {
3539
Prefix string `json:"prefix"`
3640
Order int `json:"order"`
3741
LastUpdated string `json:"last_updated"`
@@ -93,9 +97,9 @@ func (e Cheermotes) ServeHTTP(w http.ResponseWriter, r *http.Request) {
9397
}
9498

9599
func getCheermotes(w http.ResponseWriter, r *http.Request) {
96-
cheermoteBody := []CheermotesResponse{}
100+
cheermoteBody := CheermotesResponse{}
97101
for i := 0; i < len(defaultTypes); i++ {
98-
cheermote := CheermotesResponse{
102+
cheermote := CheermotesResponseData{
99103
Prefix: defaultPrefixes[i],
100104
Order: i + 1,
101105
LastUpdated: util.GetTimestamp().Format(time.RFC3339),
@@ -125,7 +129,7 @@ func getCheermotes(w http.ResponseWriter, r *http.Request) {
125129
})
126130
}
127131

128-
cheermoteBody = append(cheermoteBody, cheermote)
132+
cheermoteBody.Data = append(cheermoteBody.Data, cheermote)
129133
}
130134

131135
response, _ := json.Marshal(cheermoteBody)

internal/mock_api/endpoints/endpoints.go

-2
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,7 @@ func All() []mock_api.MockEndpoint {
4545
hype_train.HypeTrainEvents{},
4646
moderation.AutomodHeld{},
4747
moderation.AutomodStatus{},
48-
moderation.BannedEvents{},
4948
moderation.Bans{},
50-
moderation.ModeratorEvents{},
5149
moderation.Moderators{},
5250
polls.Polls{},
5351
predictions.Predictions{},

internal/mock_api/endpoints/moderation/automod_status.go

+3-15
Original file line numberDiff line numberDiff line change
@@ -83,25 +83,13 @@ func postAutomodStatus(w http.ResponseWriter, r *http.Request) {
8383
}
8484

8585
for _, data := range body.Data {
86-
if data.MessageID == "" || data.MessageText == "" || data.UserID == "" {
87-
mock_errors.WriteBadRequest(w, "msg_id, msg_text, and user_id are required")
86+
if data.MessageID == "" || data.MessageText == "" {
87+
mock_errors.WriteBadRequest(w, "msg_id and msg_text are required")
8888
return
8989
}
9090

91-
shouldPermit := true
91+
shouldPermit := util.RandomInt(2) == 0
9292

93-
dbr, err := db.NewQuery(r, 100).GetBans(database.UserRequestParams{BroadcasterID: userCtx.UserID, UserID: data.UserID})
94-
if err != nil {
95-
mock_errors.WriteServerError(w, "error getting ban status")
96-
return
97-
}
98-
99-
bans := dbr.Data.([]database.Ban)
100-
if len(bans) > 0 {
101-
shouldPermit = false
102-
} else {
103-
shouldPermit = util.RandomInt(2) == 0
104-
}
10593
response = append(response, PostAutomodStatusResponse{MessageID: data.MessageID, IsPermitted: shouldPermit})
10694
}
10795

internal/mock_api/endpoints/moderation/banned_events.go

-102
This file was deleted.

internal/mock_api/endpoints/moderation/moderation_test.go

-48
Original file line numberDiff line numberDiff line change
@@ -118,30 +118,6 @@ func TestAutoModStatus(t *testing.T) {
118118
a.Equal(200, resp.StatusCode)
119119
}
120120

121-
func TestModeratorEvents(t *testing.T) {
122-
a := test_setup.SetupTestEnv(t)
123-
ts := test_server.SetupTestServer(ModeratorEvents{})
124-
125-
req, _ := http.NewRequest(http.MethodGet, ts.URL+ModeratorEvents{}.Path(), nil)
126-
q := req.URL.Query()
127-
req.URL.RawQuery = q.Encode()
128-
resp, err := http.DefaultClient.Do(req)
129-
a.Nil(err)
130-
a.Equal(401, resp.StatusCode)
131-
132-
q.Set("broadcaster_id", "1")
133-
req.URL.RawQuery = q.Encode()
134-
resp, err = http.DefaultClient.Do(req)
135-
a.Nil(err)
136-
a.Equal(200, resp.StatusCode)
137-
138-
q.Set("user_id", "2")
139-
req.URL.RawQuery = q.Encode()
140-
resp, err = http.DefaultClient.Do(req)
141-
a.Nil(err)
142-
a.Equal(200, resp.StatusCode)
143-
}
144-
145121
func TestBanned(t *testing.T) {
146122
a := test_setup.SetupTestEnv(t)
147123
ts := test_server.SetupTestServer(Bans{})
@@ -165,27 +141,3 @@ func TestBanned(t *testing.T) {
165141
a.Nil(err)
166142
a.Equal(200, resp.StatusCode)
167143
}
168-
169-
func TestBannedEvents(t *testing.T) {
170-
a := test_setup.SetupTestEnv(t)
171-
ts := test_server.SetupTestServer(BannedEvents{})
172-
173-
req, _ := http.NewRequest(http.MethodGet, ts.URL+BannedEvents{}.Path(), nil)
174-
q := req.URL.Query()
175-
req.URL.RawQuery = q.Encode()
176-
resp, err := http.DefaultClient.Do(req)
177-
a.Nil(err)
178-
a.Equal(401, resp.StatusCode)
179-
180-
q.Set("broadcaster_id", "1")
181-
req.URL.RawQuery = q.Encode()
182-
resp, err = http.DefaultClient.Do(req)
183-
a.Nil(err)
184-
a.Equal(200, resp.StatusCode)
185-
186-
q.Set("user_id", "2")
187-
req.URL.RawQuery = q.Encode()
188-
resp, err = http.DefaultClient.Do(req)
189-
a.Nil(err)
190-
a.Equal(200, resp.StatusCode)
191-
}

internal/mock_api/endpoints/moderation/moderator_events.go

-91
This file was deleted.

internal/mock_api/endpoints/moderation/moderators.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var moderatorsMethodsSupported = map[string]bool{
2222
}
2323

2424
var moderatorsScopesByMethod = map[string][]string{
25-
http.MethodGet: {"moderation:read"},
25+
http.MethodGet: {"moderation:read", "channel:manage:moderators"},
2626
http.MethodPost: {},
2727
http.MethodDelete: {},
2828
http.MethodPatch: {},

0 commit comments

Comments
 (0)