From bde2b540d6706bc4f29b6ab203b39802b1d22099 Mon Sep 17 00:00:00 2001 From: Penthaa Patel Date: Mon, 15 Nov 2021 19:40:54 +0530 Subject: [PATCH] [MM-39644] - Migrate from gorp to sqlx in store/sqlstore/upload_session_store.go (#18892) * migrate from gorp to sqlx Signed-off-by: Penthaa Patel * fix insert query Signed-off-by: Penthaa Patel * replace NamedExec() with Exec() Signed-off-by: Penthaa Patel * fix typo Signed-off-by: Penthaa Patel * remove string() Signed-off-by: Penthaa Patel --- store/sqlstore/upload_session_store.go | 55 +++++++++++++++++++------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/store/sqlstore/upload_session_store.go b/store/sqlstore/upload_session_store.go index c29082a963..509f399185 100644 --- a/store/sqlstore/upload_session_store.go +++ b/store/sqlstore/upload_session_store.go @@ -49,7 +49,15 @@ func (us SqlUploadSessionStore) Save(session *model.UploadSession) (*model.Uploa if err := session.IsValid(); err != nil { return nil, errors.Wrap(err, "SqlUploadSessionStore.Save: validation failed") } - if err := us.GetMaster().Insert(session); err != nil { + query, args, err := us.getQueryBuilder(). + Insert("UploadSessions"). + Columns("Id", "Type", "CreateAt", "UserId", "ChannelId", "Filename", "Path", "FileSize", "FileOffset", "RemoteId", "ReqFileId"). + Values(session.Id, session.Type, session.CreateAt, session.UserId, session.ChannelId, session.Filename, session.Path, session.FileSize, session.FileOffset, session.RemoteId, session.ReqFileId). + ToSql() + if err != nil { + return nil, errors.Wrap(err, "SqlUploadSessionStore.Save: failed to build query") + } + if _, err := us.GetMasterX().Exec(query, args...); err != nil { return nil, errors.Wrap(err, "SqlUploadSessionStore.Save: failed to insert") } return session, nil @@ -62,7 +70,24 @@ func (us SqlUploadSessionStore) Update(session *model.UploadSession) error { if err := session.IsValid(); err != nil { return errors.Wrap(err, "SqlUploadSessionStore.Update: validation failed") } - if _, err := us.GetMaster().Update(session); err != nil { + query, args, err := us.getQueryBuilder(). + Update("UploadSessions"). + Set("Type", session.Type). + Set("CreateAt", session.CreateAt). + Set("UserId", session.UserId). + Set("ChannelId", session.ChannelId). + Set("Filename", session.Filename). + Set("Path", session.Path). + Set("FileSize", session.FileSize). + Set("FileOffset", session.FileOffset). + Set("RemoteId", session.RemoteId). + Set("ReqFileId", session.ReqFileId). + Where(sq.Eq{"Id": session.Id}). + ToSql() + if err != nil { + return errors.Wrap(err, "SqlUploadSessionStore.Update: failed to build query") + } + if _, err := us.GetMasterX().Exec(query, args...); err != nil { if err == sql.ErrNoRows { return store.NewErrNotFound("UploadSession", session.Id) } @@ -75,16 +100,16 @@ func (us SqlUploadSessionStore) Get(id string) (*model.UploadSession, error) { if !model.IsValidId(id) { return nil, errors.New("SqlUploadSessionStore.Get: id is not valid") } - query := us.getQueryBuilder(). + query, args, err := us.getQueryBuilder(). Select("*"). From("UploadSessions"). - Where(sq.Eq{"Id": id}) - queryString, args, err := query.ToSql() + Where(sq.Eq{"Id": id}). + ToSql() if err != nil { return nil, errors.Wrap(err, "SqlUploadSessionStore.Get: failed to build query") } var session model.UploadSession - if err := us.GetReplica().SelectOne(&session, queryString, args...); err != nil { + if err := us.GetReplicaX().Get(&session, query, args...); err != nil { if err == sql.ErrNoRows { return nil, store.NewErrNotFound("UploadSession", id) } @@ -94,17 +119,17 @@ func (us SqlUploadSessionStore) Get(id string) (*model.UploadSession, error) { } func (us SqlUploadSessionStore) GetForUser(userId string) ([]*model.UploadSession, error) { - query := us.getQueryBuilder(). + query, args, err := us.getQueryBuilder(). Select("*"). From("UploadSessions"). Where(sq.Eq{"UserId": userId}). - OrderBy("CreateAt ASC") - queryString, args, err := query.ToSql() + OrderBy("CreateAt ASC"). + ToSql() if err != nil { return nil, errors.Wrap(err, "SqlUploadSessionStore.GetForUser: failed to build query") } - var sessions []*model.UploadSession - if _, err := us.GetReplica().Select(&sessions, queryString, args...); err != nil { + sessions := []*model.UploadSession{} + if err := us.GetReplicaX().Select(&sessions, query, args...); err != nil { return nil, errors.Wrap(err, "SqlUploadSessionStore.GetForUser: failed to select") } return sessions, nil @@ -115,15 +140,15 @@ func (us SqlUploadSessionStore) Delete(id string) error { return errors.New("SqlUploadSessionStore.Delete: id is not valid") } - query := us.getQueryBuilder(). + query, args, err := us.getQueryBuilder(). Delete("UploadSessions"). - Where(sq.Eq{"Id": id}) - queryString, args, err := query.ToSql() + Where(sq.Eq{"Id": id}). + ToSql() if err != nil { return errors.Wrap(err, "SqlUploadSessionStore.Delete: failed to build query") } - if _, err := us.GetMaster().Exec(queryString, args...); err != nil { + if _, err := us.GetMasterX().Exec(query, args...); err != nil { return errors.Wrap(err, "SqlUploadSessionStore.Delete: failed to delete") }