* fix approvals counting * fix tests * fmttags/v1.21.12.1
| @@ -760,11 +760,14 @@ func IsUserInTeams(userID int64, teamIDs []int64) (bool, error) { | |||||
| } | } | ||||
| // UsersInTeamsCount counts the number of users which are in userIDs and teamIDs | // UsersInTeamsCount counts the number of users which are in userIDs and teamIDs | ||||
| func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (count int64, err error) { | |||||
| if count, err = x.In("uid", userIDs).In("team_id", teamIDs).Count(new(TeamUser)); err != nil { | |||||
| func UsersInTeamsCount(userIDs []int64, teamIDs []int64) (int64, error) { | |||||
| var ids []int64 | |||||
| if err := x.In("uid", userIDs).In("team_id", teamIDs). | |||||
| Table("team_user"). | |||||
| Cols("uid").GroupBy("uid").Find(&ids); err != nil { | |||||
| return 0, err | return 0, err | ||||
| } | } | ||||
| return | |||||
| return int64(len(ids)), nil | |||||
| } | } | ||||
| // ___________ __________ | // ___________ __________ | ||||
| @@ -370,7 +370,7 @@ func TestUsersInTeamsCount(t *testing.T) { | |||||
| assert.Equal(t, expected, count) | assert.Equal(t, expected, count) | ||||
| } | } | ||||
| test([]int64{2}, []int64{1, 2, 3, 4}, 2) | |||||
| test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) | |||||
| test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) | |||||
| test([]int64{2}, []int64{1, 2, 3, 4}, 1) // only userid 2 | |||||
| test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) // userid 2,4 | |||||
| test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5 | |||||
| } | } | ||||