migrate queries in scheme_store.go (#29687)

* migrate queries in scheme_store.go

* fix linting issues

---------

Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
Этот коммит содержится в:
kasyap dharanikota
2025-01-14 00:59:43 +05:30
коммит произвёл GitHub
родитель 153eafb1ae
Коммит d3c972897e

Просмотреть файл

@@ -32,10 +32,26 @@ const (
type SqlSchemeStore struct { type SqlSchemeStore struct {
*SqlStore *SqlStore
schemeSelectQuery sq.SelectBuilder
} }
func newSqlSchemeStore(sqlStore *SqlStore) store.SchemeStore { func newSqlSchemeStore(sqlStore *SqlStore) store.SchemeStore {
return &SqlSchemeStore{sqlStore} s := &SqlSchemeStore{
SqlStore: sqlStore,
}
s.schemeSelectQuery = s.getQueryBuilder().
Select(
"Id", "Name", "DisplayName", "Description", "Scope",
"DefaultTeamAdminRole", "DefaultTeamUserRole", "DefaultTeamGuestRole",
"DefaultChannelAdminRole", "DefaultChannelUserRole", "DefaultChannelGuestRole",
"CreateAt", "UpdateAt", "DeleteAt",
"DefaultPlaybookAdminRole", "DefaultPlaybookMemberRole",
"DefaultRunAdminRole", "DefaultRunMemberRole",
).
From("Schemes")
return s
} }
func (s *SqlSchemeStore) Save(scheme *model.Scheme) (_ *model.Scheme, err error) { func (s *SqlSchemeStore) Save(scheme *model.Scheme) (_ *model.Scheme, err error) {
@@ -68,7 +84,6 @@ func (s *SqlSchemeStore) Save(scheme *model.Scheme) (_ *model.Scheme, err error)
DefaultChannelAdminRole=:DefaultChannelAdminRole, DefaultChannelUserRole=:DefaultChannelUserRole, DefaultChannelGuestRole=:DefaultChannelGuestRole, DefaultChannelAdminRole=:DefaultChannelAdminRole, DefaultChannelUserRole=:DefaultChannelUserRole, DefaultChannelGuestRole=:DefaultChannelGuestRole,
DefaultPlaybookMemberRole=:DefaultPlaybookMemberRole, DefaultPlaybookAdminRole=:DefaultPlaybookAdminRole, DefaultRunMemberRole=:DefaultRunMemberRole, DefaultRunAdminRole=:DefaultRunAdminRole DefaultPlaybookMemberRole=:DefaultPlaybookMemberRole, DefaultPlaybookAdminRole=:DefaultPlaybookAdminRole, DefaultRunMemberRole=:DefaultRunMemberRole, DefaultRunAdminRole=:DefaultRunAdminRole
WHERE Id=:Id`, scheme) WHERE Id=:Id`, scheme)
if err != nil { if err != nil {
return nil, errors.Wrap(err, "failed to update Scheme") return nil, errors.Wrap(err, "failed to update Scheme")
} }
@@ -299,33 +314,32 @@ func filterModerated(permissions []string) []string {
func (s *SqlSchemeStore) Get(schemeId string) (*model.Scheme, error) { func (s *SqlSchemeStore) Get(schemeId string) (*model.Scheme, error) {
var scheme model.Scheme var scheme model.Scheme
if err := s.GetReplica().Get(&scheme, "SELECT * from Schemes WHERE Id = ?", schemeId); err != nil { query := s.schemeSelectQuery.Where(sq.Eq{"Id": schemeId})
if err := s.GetReplica().GetBuilder(&scheme, query); err != nil {
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeId=%s", schemeId)) return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeId=%s", schemeId))
} }
return nil, errors.Wrapf(err, "failed to get Scheme with schemeId=%s", schemeId) return nil, errors.Wrapf(err, "failed to get Scheme with schemeId=%s", schemeId)
} }
return &scheme, nil return &scheme, nil
} }
func (s *SqlSchemeStore) GetByName(schemeName string) (*model.Scheme, error) { func (s *SqlSchemeStore) GetByName(schemeName string) (*model.Scheme, error) {
var scheme model.Scheme var scheme model.Scheme
query := s.schemeSelectQuery.Where(sq.Eq{"Name": schemeName})
if err := s.GetReplica().Get(&scheme, "SELECT * from Schemes WHERE Name = ?", schemeName); err != nil { if err := s.GetReplica().GetBuilder(&scheme, query); err != nil {
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeName=%s", schemeName)) return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeName=%s", schemeName))
} }
return nil, errors.Wrapf(err, "failed to get Scheme with schemeName=%s", schemeName) return nil, errors.Wrapf(err, "failed to get Scheme with schemeName=%s", schemeName)
} }
return &scheme, nil return &scheme, nil
} }
func (s *SqlSchemeStore) Delete(schemeId string) (*model.Scheme, error) { func (s *SqlSchemeStore) Delete(schemeId string) (*model.Scheme, error) {
// Get the scheme
scheme := model.Scheme{} scheme := model.Scheme{}
if err := s.GetMaster().Get(&scheme, `SELECT * from Schemes WHERE Id = ?`, schemeId); err != nil { query := s.schemeSelectQuery.Where(sq.Eq{"Id": schemeId})
if err := s.GetMaster().GetBuilder(&scheme, query); err != nil {
if err == sql.ErrNoRows { if err == sql.ErrNoRows {
return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeId=%s", schemeId)) return nil, store.NewErrNotFound("Scheme", fmt.Sprintf("schemeId=%s", schemeId))
} }
@@ -369,7 +383,6 @@ func (s *SqlSchemeStore) Delete(schemeId string) (*model.Scheme, error) {
Set("UpdateAt", time). Set("UpdateAt", time).
Set("DeleteAt", time). Set("DeleteAt", time).
ToSql() ToSql()
if err != nil { if err != nil {
return nil, errors.Wrap(err, "status_tosql") return nil, errors.Wrap(err, "status_tosql")
} }
@@ -387,13 +400,11 @@ func (s *SqlSchemeStore) Delete(schemeId string) (*model.Scheme, error) {
DefaultTeamAdminRole=:DefaultTeamAdminRole, DefaultTeamUserRole=:DefaultTeamUserRole, DefaultTeamGuestRole=:DefaultTeamGuestRole, DefaultTeamAdminRole=:DefaultTeamAdminRole, DefaultTeamUserRole=:DefaultTeamUserRole, DefaultTeamGuestRole=:DefaultTeamGuestRole,
DefaultChannelAdminRole=:DefaultChannelAdminRole, DefaultChannelUserRole=:DefaultChannelUserRole, DefaultChannelGuestRole=:DefaultChannelGuestRole DefaultChannelAdminRole=:DefaultChannelAdminRole, DefaultChannelUserRole=:DefaultChannelUserRole, DefaultChannelGuestRole=:DefaultChannelGuestRole
WHERE Id=:Id`, &scheme) WHERE Id=:Id`, &scheme)
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "failed to update Scheme with schemeId=%s", schemeId) return nil, errors.Wrapf(err, "failed to update Scheme with schemeId=%s", schemeId)
} }
rowsChanged, err := res.RowsAffected() rowsChanged, err := res.RowsAffected()
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "failed to get RowsAffected while updating scheme with schemeId=%s", schemeId) return nil, errors.Wrapf(err, "failed to get RowsAffected while updating scheme with schemeId=%s", schemeId)
} }
@@ -441,7 +452,6 @@ func (s *SqlSchemeStore) PermanentDeleteAll() error {
func (s *SqlSchemeStore) CountByScope(scope string) (int64, error) { func (s *SqlSchemeStore) CountByScope(scope string) (int64, error) {
var count int64 var count int64
err := s.GetReplica().Get(&count, `SELECT count(*) FROM Schemes WHERE Scope = ? AND DeleteAt = 0`, scope) err := s.GetReplica().Get(&count, `SELECT count(*) FROM Schemes WHERE Scope = ? AND DeleteAt = 0`, scope)
if err != nil { if err != nil {
return 0, errors.Wrap(err, "failed to count Schemes by scope") return 0, errors.Wrap(err, "failed to count Schemes by scope")
} }