From 9ce1aa4455b82179dbe21b9caf54cb3622b9a5a5 Mon Sep 17 00:00:00 2001 From: Shota Gvinepadze Date: Fri, 21 Jun 2019 12:42:38 +0400 Subject: [PATCH] [MM-11306] Migrate 'UserAccessToken.Save' to Sync by default (#11309) * Migrate 'UserAccessToken.Save' to Sync by default * Remove else clause in UserAccessToken.Save() --- app/session.go | 7 +++---- store/sqlstore/user_access_token_store.go | 21 ++++++++----------- store/store.go | 2 +- store/storetest/mocks/UserAccessTokenStore.go | 19 ++++++++++++----- store/storetest/user_access_token_store.go | 16 +++++++------- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/app/session.go b/app/session.go index 7b04cc38ca..3b6f44e425 100644 --- a/app/session.go +++ b/app/session.go @@ -244,11 +244,10 @@ func (a *App) CreateUserAccessToken(token *model.UserAccessToken) (*model.UserAc token.Token = model.NewId() - result := <-a.Srv.Store.UserAccessToken().Save(token) - if result.Err != nil { - return nil, result.Err + token, err = a.Srv.Store.UserAccessToken().Save(token) + if err != nil { + return nil, err } - token = result.Data.(*model.UserAccessToken) // Don't send emails to bot users. if !user.IsBot { diff --git a/store/sqlstore/user_access_token_store.go b/store/sqlstore/user_access_token_store.go index 8ec04bb8d5..5d7222a233 100644 --- a/store/sqlstore/user_access_token_store.go +++ b/store/sqlstore/user_access_token_store.go @@ -35,20 +35,17 @@ func (s SqlUserAccessTokenStore) CreateIndexesIfNotExists() { s.CreateIndexIfNotExists("idx_user_access_tokens_user_id", "UserAccessTokens", "UserId") } -func (s SqlUserAccessTokenStore) Save(token *model.UserAccessToken) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - token.PreSave() +func (s SqlUserAccessTokenStore) Save(token *model.UserAccessToken) (*model.UserAccessToken, *model.AppError) { + token.PreSave() - if result.Err = token.IsValid(); result.Err != nil { - return - } + if err := token.IsValid(); err != nil { + return nil, err + } - if err := s.GetMaster().Insert(token); err != nil { - result.Err = model.NewAppError("SqlUserAccessTokenStore.Save", "store.sql_user_access_token.save.app_error", nil, "", http.StatusInternalServerError) - } else { - result.Data = token - } - }) + if err := s.GetMaster().Insert(token); err != nil { + return nil, model.NewAppError("SqlUserAccessTokenStore.Save", "store.sql_user_access_token.save.app_error", nil, "", http.StatusInternalServerError) + } + return token, nil } func (s SqlUserAccessTokenStore) Delete(tokenId string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index 4b08a850fc..cd922c77f8 100644 --- a/store/store.go +++ b/store/store.go @@ -515,7 +515,7 @@ type JobStore interface { } type UserAccessTokenStore interface { - Save(token *model.UserAccessToken) StoreChannel + Save(token *model.UserAccessToken) (*model.UserAccessToken, *model.AppError) Delete(tokenId string) StoreChannel DeleteAllForUser(userId string) StoreChannel Get(tokenId string) (*model.UserAccessToken, *model.AppError) diff --git a/store/storetest/mocks/UserAccessTokenStore.go b/store/storetest/mocks/UserAccessTokenStore.go index c7cb93eb26..d1e9e33359 100644 --- a/store/storetest/mocks/UserAccessTokenStore.go +++ b/store/storetest/mocks/UserAccessTokenStore.go @@ -137,19 +137,28 @@ func (_m *UserAccessTokenStore) GetByUser(userId string, page int, perPage int) } // Save provides a mock function with given fields: token -func (_m *UserAccessTokenStore) Save(token *model.UserAccessToken) store.StoreChannel { +func (_m *UserAccessTokenStore) Save(token *model.UserAccessToken) (*model.UserAccessToken, *model.AppError) { ret := _m.Called(token) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.UserAccessToken) store.StoreChannel); ok { + var r0 *model.UserAccessToken + if rf, ok := ret.Get(0).(func(*model.UserAccessToken) *model.UserAccessToken); ok { r0 = rf(token) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.UserAccessToken) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(*model.UserAccessToken) *model.AppError); ok { + r1 = rf(token) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // Search provides a mock function with given fields: term diff --git a/store/storetest/user_access_token_store.go b/store/storetest/user_access_token_store.go index ba17dae8c5..3233d8198a 100644 --- a/store/storetest/user_access_token_store.go +++ b/store/storetest/user_access_token_store.go @@ -31,8 +31,8 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) { s1, err := ss.Session().Save(s1) require.Nil(t, err) - if result := <-ss.UserAccessToken().Save(uat); result.Err != nil { - t.Fatal(result.Err) + if _, err = ss.UserAccessToken().Save(uat); err != nil { + t.Fatal(err) } if result, terr := ss.UserAccessToken().Get(uat.Id); terr != nil { @@ -82,8 +82,8 @@ func testUserAccessTokenSaveGetDelete(t *testing.T, ss store.Store) { s2, err = ss.Session().Save(s2) require.Nil(t, err) - if result := <-ss.UserAccessToken().Save(uat); result.Err != nil { - t.Fatal(result.Err) + if _, err = ss.UserAccessToken().Save(uat); err != nil { + t.Fatal(err) } if result := <-ss.UserAccessToken().DeleteAllForUser(uat.UserId); result.Err != nil { @@ -113,8 +113,8 @@ func testUserAccessTokenDisableEnable(t *testing.T, ss store.Store) { s1, err := ss.Session().Save(s1) require.Nil(t, err) - if result := <-ss.UserAccessToken().Save(uat); result.Err != nil { - t.Fatal(result.Err) + if _, err = ss.UserAccessToken().Save(uat); err != nil { + t.Fatal(err) } if err = (<-ss.UserAccessToken().UpdateTokenDisable(uat.Id)).Err; err != nil { @@ -157,8 +157,8 @@ func testUserAccessTokenSearch(t *testing.T, ss store.Store) { s1, err := ss.Session().Save(s1) require.Nil(t, err) - if result := <-ss.UserAccessToken().Save(uat); result.Err != nil { - t.Fatal(result.Err) + if _, err = ss.UserAccessToken().Save(uat); err != nil { + t.Fatal(err) } if result := <-ss.UserAccessToken().Search(uat.Id); result.Err != nil {