Skip to content

Commit 1b56537

Browse files
Updated the getMutedUser function to return proper response
1 parent df4695f commit 1b56537

File tree

2 files changed

+29
-16
lines changed

2 files changed

+29
-16
lines changed

server/plugin/command.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,23 +136,27 @@ func (p *Plugin) postCommandResponse(args *model.CommandArgs, text string) {
136136
p.client.Post.SendEphemeralPost(args.UserId, post)
137137
}
138138

139-
func (p *Plugin) getMutedUsernames(userInfo *GitHubUserInfo) []string {
139+
func (p *Plugin) getMutedUsernames(userInfo *GitHubUserInfo) ([]string, error) {
140140
var mutedUsernameBytes []byte
141141
err := p.store.Get(userInfo.UserID+"-muted-users", &mutedUsernameBytes)
142142
if err != nil {
143-
return nil
143+
return nil, err
144144
}
145145
mutedUsernames := string(mutedUsernameBytes)
146146
var mutedUsers []string
147147
if len(mutedUsernames) == 0 {
148-
return mutedUsers
148+
return mutedUsers, nil
149149
}
150150
mutedUsers = strings.Split(mutedUsernames, ",")
151-
return mutedUsers
151+
return mutedUsers, nil
152152
}
153153

154154
func (p *Plugin) handleMuteList(_ *model.CommandArgs, userInfo *GitHubUserInfo) string {
155-
mutedUsernames := p.getMutedUsernames(userInfo)
155+
mutedUsernames, err := p.getMutedUsernames(userInfo)
156+
if err != nil {
157+
return "Some error occurred getting muted users. Please try again later"
158+
}
159+
156160
var mutedUsers string
157161
for _, user := range mutedUsernames {
158162
mutedUsers += fmt.Sprintf("- %v\n", user)
@@ -173,7 +177,11 @@ func contains(s []string, e string) bool {
173177
}
174178

175179
func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
176-
mutedUsernames := p.getMutedUsernames(userInfo)
180+
mutedUsernames, err := p.getMutedUsernames(userInfo)
181+
if err != nil {
182+
return "Some error occurred getting muted users. Please try again later"
183+
}
184+
177185
if contains(mutedUsernames, username) {
178186
return username + " is already muted"
179187
}
@@ -190,7 +198,7 @@ func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *
190198
mutedUsers = username
191199
}
192200

193-
_, err := p.store.Set(userInfo.UserID+"-muted-users", []byte(mutedUsers))
201+
_, err = p.store.Set(userInfo.UserID+"-muted-users", []byte(mutedUsers))
194202
if err != nil {
195203
return "Error occurred saving list of muted users"
196204
}
@@ -199,11 +207,15 @@ func (p *Plugin) handleMuteAdd(_ *model.CommandArgs, username string, userInfo *
199207
}
200208

201209
func (p *Plugin) handleUnmute(_ *model.CommandArgs, username string, userInfo *GitHubUserInfo) string {
202-
mutedUsernames := p.getMutedUsernames(userInfo)
210+
mutedUsernames, err := p.getMutedUsernames(userInfo)
211+
if err != nil {
212+
return "Some error occurred getting muted users. Please try again later"
213+
}
214+
203215
userToMute := []string{username}
204216
newMutedList := arrayDifference(mutedUsernames, userToMute)
205217

206-
_, err := p.store.Set(userInfo.UserID+"-muted-users", []byte(strings.Join(newMutedList, ",")))
218+
_, err = p.store.Set(userInfo.UserID+"-muted-users", []byte(strings.Join(newMutedList, ",")))
207219
if err != nil {
208220
return "Error occurred unmuting users"
209221
}

server/plugin/command_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -344,15 +344,16 @@ func TestGetMutedUsernames(t *testing.T) {
344344
tests := []struct {
345345
name string
346346
setup func()
347-
assertions func(t *testing.T, result []string)
347+
assertions func(t *testing.T, result []string, err error)
348348
}{
349349
{
350350
name: "Error retrieving muted usernames",
351351
setup: func() {
352352
mockKvStore.EXPECT().Get("mockUserID-muted-users", gomock.Any()).Return(errors.New("error retrieving muted users")).Times(1)
353353
},
354-
assertions: func(t *testing.T, result []string) {
354+
assertions: func(t *testing.T, result []string, err error) {
355355
assert.Nil(t, result)
356+
assert.ErrorContains(t, err, "error retrieving muted users")
356357
},
357358
},
358359
{
@@ -363,7 +364,7 @@ func TestGetMutedUsernames(t *testing.T) {
363364
return nil
364365
}).Times(1)
365366
},
366-
assertions: func(t *testing.T, result []string) {
367+
assertions: func(t *testing.T, result []string, _ error) {
367368
assert.Equal(t, []string(nil), result)
368369
},
369370
},
@@ -376,7 +377,7 @@ func TestGetMutedUsernames(t *testing.T) {
376377
return nil
377378
}).Times(1)
378379
},
379-
assertions: func(t *testing.T, result []string) {
380+
assertions: func(t *testing.T, result []string, _ error) {
380381
assert.Equal(t, []string{"user1", "user2", "user3"}, result)
381382
},
382383
},
@@ -385,9 +386,9 @@ func TestGetMutedUsernames(t *testing.T) {
385386
t.Run(tc.name, func(t *testing.T) {
386387
tc.setup()
387388

388-
mutedUsernames := p.getMutedUsernames(userInfo)
389+
mutedUsernames, err := p.getMutedUsernames(userInfo)
389390

390-
tc.assertions(t, mutedUsernames)
391+
tc.assertions(t, mutedUsernames, err)
391392
})
392393
}
393394
}
@@ -409,7 +410,7 @@ func TestHandleMuteList(t *testing.T) {
409410
mockKvStore.EXPECT().Get("mockUserID-muted-users", gomock.Any()).Return(errors.New("error retrieving muted users")).Times(1)
410411
},
411412
assertions: func(t *testing.T, result string) {
412-
assert.Equal(t, "You have no muted users", result)
413+
assert.Equal(t, "Some error occurred getting muted users. Please try again later", result)
413414
},
414415
},
415416
{

0 commit comments

Comments
 (0)