From 47de1f37e651f593fb500b72ee231871fb2a3842 Mon Sep 17 00:00:00 2001 From: Ernest Nguyen <58267404+erni27@users.noreply.github.com> Date: Mon, 22 Nov 2021 17:05:13 +0100 Subject: [PATCH] MM-39632: Migrate from using gorp to sqlx (#18949) Automatic Merge --- store/sqlstore/user_terms_of_service.go | 41 +++++++++++++++++++------ 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/store/sqlstore/user_terms_of_service.go b/store/sqlstore/user_terms_of_service.go index 9f3d1d2f85..173c4ea2e3 100644 --- a/store/sqlstore/user_terms_of_service.go +++ b/store/sqlstore/user_terms_of_service.go @@ -32,32 +32,47 @@ func (s SqlUserTermsOfServiceStore) createIndexesIfNotExists() { } func (s SqlUserTermsOfServiceStore) GetByUser(userId string) (*model.UserTermsOfService, error) { - var userTermsOfService *model.UserTermsOfService - - err := s.GetReplica().SelectOne(&userTermsOfService, "SELECT * FROM UserTermsOfService WHERE UserId = :userId", map[string]interface{}{"userId": userId}) - if err != nil { + var userTermsOfService model.UserTermsOfService + query := ` + SELECT * + FROM UserTermsOfService + WHERE UserId = ? + ` + if err := s.GetReplicaX().Get(&userTermsOfService, query, userId); err != nil { if err == sql.ErrNoRows { return nil, store.NewErrNotFound("UserTermsOfService", "userId="+userId) } + return nil, errors.Wrapf(err, "failed to get UserTermsOfService with userId=%s", userId) } - return userTermsOfService, nil + + return &userTermsOfService, nil } func (s SqlUserTermsOfServiceStore) Save(userTermsOfService *model.UserTermsOfService) (*model.UserTermsOfService, error) { userTermsOfService.PreSave() - if err := userTermsOfService.IsValid(); err != nil { return nil, err } - c, err := s.GetMaster().Update(userTermsOfService) + query := ` + UPDATE UserTermsOfService + SET UserId = :UserId, TermsOfServiceId = :TermsOfServiceId, CreateAt = :CreateAt + WHERE UserId = :UserId AND TermsOfServiceId = :TermsOfServiceId + ` + result, err := s.GetMasterX().NamedExec(query, userTermsOfService) if err != nil { return nil, errors.Wrapf(err, "failed to update UserTermsOfService with userId=%s and termsOfServiceId=%s", userTermsOfService.UserId, userTermsOfService.TermsOfServiceId) } - if c == 0 { - if err := s.GetMaster().Insert(userTermsOfService); err != nil { + if updatedRows, _ := result.RowsAffected(); updatedRows == 0 { + query := ` + INSERT INTO UserTermsOfService + (UserId, TermsOfServiceId, CreateAt) + VALUES + (:UserId, :TermsOfServiceId, :CreateAt) + ` + if _, err := s.GetMasterX().NamedExec(query, userTermsOfService); err != nil { return nil, errors.Wrapf(err, "failed to save UserTermsOfService with userId=%s and termsOfServiceId=%s", userTermsOfService.UserId, userTermsOfService.TermsOfServiceId) } } @@ -66,8 +81,14 @@ func (s SqlUserTermsOfServiceStore) Save(userTermsOfService *model.UserTermsOfSe } func (s SqlUserTermsOfServiceStore) Delete(userId, termsOfServiceId string) error { - if _, err := s.GetMaster().Exec("DELETE FROM UserTermsOfService WHERE UserId = :UserId AND TermsOfServiceId = :TermsOfServiceId", map[string]interface{}{"UserId": userId, "TermsOfServiceId": termsOfServiceId}); err != nil { + query := ` + DELETE + FROM UserTermsOfService + WHERE UserId = ? AND TermsOfServiceId = ? + ` + if _, err := s.GetMasterX().Exec(query, userId, termsOfServiceId); err != nil { return errors.Wrapf(err, "failed to delete UserTermsOfService with userId=%s and termsOfServiceId=%s", userId, termsOfServiceId) } + return nil }