Improves group membership telemetry. (#20437)
* Improves groups membership telemetry. * Removes unnecessary where clause (it's added by default). * Cleans up data. * Testing the relative group counts. * Adds missing test mock. Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9d0c99068a
Коммит
4e9edef1f1
@@ -1740,6 +1740,26 @@ func (s *SqlGroupStore) DistinctGroupMemberCount() (int64, error) {
|
||||
return s.countTableWithSelectAndWhere("COUNT(DISTINCT UserId)", "GroupMembers", nil)
|
||||
}
|
||||
|
||||
func (s *SqlGroupStore) DistinctGroupMemberCountForSource(source model.GroupSource) (int64, error) {
|
||||
builder := s.getQueryBuilder().
|
||||
Select("COUNT(DISTINCT GroupMembers.UserId)").
|
||||
From("GroupMembers").
|
||||
Join("UserGroups ON GroupMembers.GroupId = UserGroups.Id").
|
||||
Where(sq.Eq{"UserGroups.Source": source, "GroupMembers.DeleteAt": 0})
|
||||
|
||||
query, args, err := builder.ToSql()
|
||||
if err != nil {
|
||||
return 0, errors.Wrap(err, "distinct_group_member_count_for_source_tosql")
|
||||
}
|
||||
|
||||
var count int64
|
||||
if err = s.GetReplicaX().Get(&count, query, args...); err != nil {
|
||||
return 0, errors.Wrapf(err, "failed to select distinct groupmember count for source %q", source)
|
||||
}
|
||||
|
||||
return count, nil
|
||||
}
|
||||
|
||||
func (s *SqlGroupStore) GroupCountWithAllowReference() (int64, error) {
|
||||
return s.countTableWithSelectAndWhere("COUNT(*)", "UserGroups", sq.Eq{"AllowReference": true, "DeleteAt": 0})
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user