mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[GH-16800]: Refactor raw SQL to query builder in group_store.go - part 2 (#24254)
* Use builder in GetMember * Use query builder in GetByUser * Use query builder in GetMemberUsers * Use query builder in GetNonMemberUsersPage * Use query builder in PermanentDeleteMembersByUser --------- Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
parent
71fb10ae7a
commit
6e6668b88b
@ -304,17 +304,16 @@ func (s *SqlGroupStore) GetAllBySource(groupSource model.GroupSource) ([]*model.
|
|||||||
func (s *SqlGroupStore) GetByUser(userId string) ([]*model.Group, error) {
|
func (s *SqlGroupStore) GetByUser(userId string) ([]*model.Group, error) {
|
||||||
groups := []*model.Group{}
|
groups := []*model.Group{}
|
||||||
|
|
||||||
query := `
|
builder := s.getQueryBuilder().
|
||||||
SELECT
|
Select("UserGroups.*").
|
||||||
UserGroups.*
|
From("GroupMembers").
|
||||||
FROM
|
Join("UserGroups ON UserGroups.Id = GroupMembers.GroupId").
|
||||||
GroupMembers
|
Where(sq.Eq{
|
||||||
JOIN UserGroups ON UserGroups.Id = GroupMembers.GroupId
|
"GroupMembers.DeleteAt": 0,
|
||||||
WHERE
|
"UserId": userId,
|
||||||
GroupMembers.DeleteAt = 0
|
})
|
||||||
AND UserId = ?`
|
|
||||||
|
|
||||||
if err := s.GetReplicaX().Select(&groups, query, userId); err != nil {
|
if err := s.GetReplicaX().SelectBuilder(&groups, builder); err != nil {
|
||||||
return nil, errors.Wrapf(err, "failed to find Groups with userId=%s", userId)
|
return nil, errors.Wrapf(err, "failed to find Groups with userId=%s", userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,40 +423,33 @@ func (s *SqlGroupStore) Restore(groupID string) (*model.Group, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlGroupStore) GetMember(groupID, userID string) (*model.GroupMember, error) {
|
func (s *SqlGroupStore) GetMember(groupID, userID string) (*model.GroupMember, error) {
|
||||||
query, args, err := s.getQueryBuilder().
|
builder := s.getQueryBuilder().
|
||||||
Select("*").
|
Select("*").
|
||||||
From("GroupMembers").
|
From("GroupMembers").
|
||||||
Where(sq.Eq{"UserId": userID}).
|
Where(sq.Eq{"UserId": userID}).
|
||||||
Where(sq.Eq{"GroupId": groupID}).
|
Where(sq.Eq{"GroupId": groupID}).
|
||||||
Where(sq.Eq{"DeleteAt": 0}).
|
Where(sq.Eq{"DeleteAt": 0})
|
||||||
ToSql()
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "get_member_query")
|
|
||||||
}
|
|
||||||
var groupMember model.GroupMember
|
var groupMember model.GroupMember
|
||||||
err = s.GetReplicaX().Get(&groupMember, query, args...)
|
if err := s.GetReplicaX().GetBuilder(&groupMember, builder); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "GetMember")
|
return nil, errors.Wrap(err, "GetMember")
|
||||||
}
|
}
|
||||||
|
|
||||||
return &groupMember, nil
|
return &groupMember, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlGroupStore) GetMemberUsers(groupID string) ([]*model.User, error) {
|
func (s *SqlGroupStore) GetMemberUsers(groupID string) ([]*model.User, error) {
|
||||||
groupMembers := []*model.User{}
|
groupMembers := []*model.User{}
|
||||||
|
|
||||||
query := `
|
builder := s.getQueryBuilder().
|
||||||
SELECT
|
Select("Users.*").
|
||||||
Users.*
|
From("GroupMembers").
|
||||||
FROM
|
Join("Users ON Users.Id = GroupMembers.UserId").
|
||||||
GroupMembers
|
Where(sq.Eq{
|
||||||
JOIN Users ON Users.Id = GroupMembers.UserId
|
"GroupMembers.DeleteAt": 0,
|
||||||
WHERE
|
"Users.DeleteAt": 0,
|
||||||
GroupMembers.DeleteAt = 0
|
"GroupId": groupID,
|
||||||
AND Users.DeleteAt = 0
|
})
|
||||||
AND GroupId = ?`
|
|
||||||
|
|
||||||
if err := s.GetReplicaX().Select(&groupMembers, query, groupID); err != nil {
|
if err := s.GetReplicaX().SelectBuilder(&groupMembers, builder); err != nil {
|
||||||
return nil, errors.Wrapf(err, "failed to find member Users for Group with id=%s", groupID)
|
return nil, errors.Wrapf(err, "failed to find member Users for Group with id=%s", groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -529,11 +521,16 @@ func (s *SqlGroupStore) GetMemberUsersSortedPage(groupID string, page int, perPa
|
|||||||
func (s *SqlGroupStore) GetNonMemberUsersPage(groupID string, page int, perPage int, viewRestrictions *model.ViewUsersRestrictions) ([]*model.User, error) {
|
func (s *SqlGroupStore) GetNonMemberUsersPage(groupID string, page int, perPage int, viewRestrictions *model.ViewUsersRestrictions) ([]*model.User, error) {
|
||||||
groupMembers := []*model.User{}
|
groupMembers := []*model.User{}
|
||||||
|
|
||||||
if err := s.GetReplicaX().Get(&model.Group{}, "SELECT * FROM UserGroups WHERE Id = ?", groupID); err != nil {
|
builder := s.getQueryBuilder().
|
||||||
|
Select("*").
|
||||||
|
From("UserGroups").
|
||||||
|
Where(sq.Eq{"Id": groupID})
|
||||||
|
|
||||||
|
if err := s.GetReplicaX().GetBuilder(&model.Group{}, builder); err != nil {
|
||||||
return nil, errors.Wrap(err, "GetNonMemberUsersPage")
|
return nil, errors.Wrap(err, "GetNonMemberUsersPage")
|
||||||
}
|
}
|
||||||
|
|
||||||
query := s.getQueryBuilder().
|
builder = s.getQueryBuilder().
|
||||||
Select("u.*").
|
Select("u.*").
|
||||||
From("Users u").
|
From("Users u").
|
||||||
LeftJoin("GroupMembers ON (GroupMembers.UserId = u.Id AND GroupMembers.GroupId = ?)", groupID).
|
LeftJoin("GroupMembers ON (GroupMembers.UserId = u.Id AND GroupMembers.GroupId = ?)", groupID).
|
||||||
@ -543,14 +540,9 @@ func (s *SqlGroupStore) GetNonMemberUsersPage(groupID string, page int, perPage
|
|||||||
Offset(uint64(page * perPage)).
|
Offset(uint64(page * perPage)).
|
||||||
OrderBy("u.Username ASC")
|
OrderBy("u.Username ASC")
|
||||||
|
|
||||||
query = applyViewRestrictionsFilter(query, viewRestrictions, true)
|
builder = applyViewRestrictionsFilter(builder, viewRestrictions, true)
|
||||||
|
|
||||||
queryString, args, err := query.ToSql()
|
if err := s.GetReplicaX().SelectBuilder(&groupMembers, builder); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "")
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := s.GetReplicaX().Select(&groupMembers, queryString, args...); err != nil {
|
|
||||||
return nil, errors.Wrapf(err, "failed to find member Users for Group with id=%s", groupID)
|
return nil, errors.Wrapf(err, "failed to find member Users for Group with id=%s", groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -674,7 +666,10 @@ func (s *SqlGroupStore) DeleteMember(groupID string, userID string) (*model.Grou
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlGroupStore) PermanentDeleteMembersByUser(userId string) error {
|
func (s *SqlGroupStore) PermanentDeleteMembersByUser(userId string) error {
|
||||||
if _, err := s.GetMasterX().Exec("DELETE FROM GroupMembers WHERE UserId = ?", userId); err != nil {
|
builder := s.getQueryBuilder().
|
||||||
|
Delete("GroupMembers").
|
||||||
|
Where(sq.Eq{"UserId": userId})
|
||||||
|
if _, err := s.GetMasterX().ExecBuilder(builder); err != nil {
|
||||||
return errors.Wrapf(err, "failed to permanent delete GroupMember with userId=%s", userId)
|
return errors.Wrapf(err, "failed to permanent delete GroupMember with userId=%s", userId)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user