From 478b3f7108622cd7d145251274402f539c828f15 Mon Sep 17 00:00:00 2001 From: Alex Boutin <70167962+mr-aboutin@users.noreply.github.com> Date: Mon, 22 Nov 2021 10:28:50 -0500 Subject: [PATCH] MM-39634: Migrated gorp to sqlx (#18951) * MM-39634: Migrated gorp to sqlx * MM-39634: Removed redundant limit on get since only one value is returned * MM-39485: Fixed returned errors + goimports Co-authored-by: Alex Co-authored-by: Mattermod --- store/sqlstore/terms_of_service_store.go | 37 +++++++++++++++++------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/store/sqlstore/terms_of_service_store.go b/store/sqlstore/terms_of_service_store.go index f3c5c792db..09fa12cc48 100644 --- a/store/sqlstore/terms_of_service_store.go +++ b/store/sqlstore/terms_of_service_store.go @@ -6,11 +6,10 @@ package sqlstore import ( "database/sql" - "github.com/pkg/errors" - "github.com/mattermost/mattermost-server/v6/einterfaces" "github.com/mattermost/mattermost-server/v6/model" "github.com/mattermost/mattermost-server/v6/store" + "github.com/pkg/errors" ) type SqlTermsOfServiceStore struct { @@ -44,8 +43,13 @@ func (s SqlTermsOfServiceStore) Save(termsOfService *model.TermsOfService) (*mod if err := termsOfService.IsValid(); err != nil { return nil, err } + query := `INSERT INTO TermsOfService + (Id, CreateAt, UserId, Text) + VALUES + (:Id, :CreateAt, :UserId, :Text) + ` - if err := s.GetMaster().Insert(termsOfService); err != nil { + if _, err := s.GetMasterX().NamedExec(query, termsOfService); err != nil { return nil, errors.Wrapf(err, "could not save a new TermsOfService") } @@ -53,7 +57,7 @@ func (s SqlTermsOfServiceStore) Save(termsOfService *model.TermsOfService) (*mod } func (s SqlTermsOfServiceStore) GetLatest(allowFromCache bool) (*model.TermsOfService, error) { - var termsOfService *model.TermsOfService + var termsOfService model.TermsOfService query := s.getQueryBuilder(). Select("*"). @@ -66,23 +70,34 @@ func (s SqlTermsOfServiceStore) GetLatest(allowFromCache bool) (*model.TermsOfSe return nil, errors.Wrap(err, "could not build sql query to get latest TOS") } - if err := s.GetReplica().SelectOne(&termsOfService, queryString, args...); err != nil { + if err := s.GetReplicaX().Get(&termsOfService, queryString, args...); err != nil { if err == sql.ErrNoRows { return nil, store.NewErrNotFound("TermsOfService", "CreateAt=latest") } return nil, errors.Wrap(err, "could not find latest TermsOfService") } - return termsOfService, nil + return &termsOfService, nil } func (s SqlTermsOfServiceStore) Get(id string, allowFromCache bool) (*model.TermsOfService, error) { - obj, err := s.GetReplica().Get(model.TermsOfService{}, id) + var termsOfService model.TermsOfService + queryString, _, err := s.getQueryBuilder(). + Select("*"). + From("TermsOfService"). + Where("id = ?"). + ToSql() + if err != nil { + return nil, errors.Wrap(err, "terms_of_service_to_sql") + } + + err = s.GetReplicaX().Get(&termsOfService, queryString, id) + if err != nil { + if err == sql.ErrNoRows { + return nil, store.NewErrNotFound("TermsOfService", "id") + } return nil, errors.Wrapf(err, "could not find TermsOfService with id=%s", id) } - if obj == nil { - return nil, store.NewErrNotFound("TermsOfService", id) - } - return obj.(*model.TermsOfService), nil + return &termsOfService, nil }