MM-24692: Add a since parameter to getGroups api (#14444)
* add a since parameter to getGroups api * update for lint error * when using since, return deleted groups as well. * update flaky test, groups have same create time Co-authored-by: mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
1031e27fd8
Коммит
80c846412d
@@ -1144,9 +1144,16 @@ func (s *SqlGroupStore) GetGroups(page, perPage int, opts model.GroupSearchOpts)
|
||||
|
||||
groupsQuery = groupsQuery.
|
||||
From("UserGroups g").
|
||||
Where("g.DeleteAt = 0").
|
||||
OrderBy("g.DisplayName")
|
||||
|
||||
if opts.Since > 0 {
|
||||
groupsQuery = groupsQuery.Where(sq.Gt{
|
||||
"g.UpdateAt": opts.Since,
|
||||
})
|
||||
} else {
|
||||
groupsQuery = groupsQuery.Where("g.DeleteAt = 0")
|
||||
}
|
||||
|
||||
if perPage != 0 {
|
||||
groupsQuery = groupsQuery.
|
||||
Limit(uint64(perPage)).
|
||||
|
||||
@@ -3010,6 +3010,8 @@ func testGetGroups(t *testing.T, ss store.Store) {
|
||||
team1, err := ss.Team().Save(team1)
|
||||
require.Nil(t, err)
|
||||
|
||||
startCreateTime := team1.UpdateAt - 1
|
||||
|
||||
// Create Channel1
|
||||
channel1 := &model.Channel{
|
||||
TeamId: model.NewId(),
|
||||
@@ -3148,10 +3150,12 @@ func testGetGroups(t *testing.T, ss store.Store) {
|
||||
require.Nil(t, err)
|
||||
|
||||
user2.DeleteAt = 1
|
||||
ss.User().Update(user2, true)
|
||||
u2Update, _ := ss.User().Update(user2, true)
|
||||
|
||||
group2NameSubstring := "group-2"
|
||||
|
||||
endCreateTime := u2Update.New.UpdateAt + 1
|
||||
|
||||
testCases := []struct {
|
||||
Name string
|
||||
Page int
|
||||
@@ -3309,6 +3313,32 @@ func testGetGroups(t *testing.T, ss store.Store) {
|
||||
return true
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "Use Since return all",
|
||||
Opts: model.GroupSearchOpts{FilterAllowReference: true, Since: startCreateTime},
|
||||
Page: 0,
|
||||
PerPage: 100,
|
||||
Resultf: func(groups []*model.Group) bool {
|
||||
if len(groups) == 0 {
|
||||
return false
|
||||
}
|
||||
for _, g := range groups {
|
||||
if g.DeleteAt != 0 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "Use Since return none",
|
||||
Opts: model.GroupSearchOpts{FilterAllowReference: true, Since: endCreateTime},
|
||||
Page: 0,
|
||||
PerPage: 100,
|
||||
Resultf: func(groups []*model.Group) bool {
|
||||
return len(groups) == 0
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
|
||||
Ссылка в новой задаче
Block a user