diff --git a/api4/team_test.go b/api4/team_test.go index 5f1b881389..18bed8e11a 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -1436,7 +1436,7 @@ func TestAddTeamMember(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": team.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) tm, resp = Client.AddTeamMemberFromInvite(token.Token, "") CheckNoError(t, resp) @@ -1466,7 +1466,7 @@ func TestAddTeamMember(t *testing.T) { // expired token of more than 50 hours token = model.NewToken(app.TOKEN_TYPE_TEAM_INVITATION, "") token.CreateAt = model.GetMillis() - 1000*60*60*50 - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) _, resp = Client.AddTeamMemberFromInvite(token.Token, "") CheckBadRequestStatus(t, resp) @@ -1478,7 +1478,7 @@ func TestAddTeamMember(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": testId}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) _, resp = Client.AddTeamMemberFromInvite(token.Token, "") CheckNotFoundStatus(t, resp) @@ -1519,7 +1519,7 @@ func TestAddTeamMember(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": team.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) tm, resp = Client.AddTeamMemberFromInvite(token.Token, "") require.Equal(t, "app.team.invite_token.group_constrained.error", resp.Error.Id) diff --git a/api4/user_test.go b/api4/user_test.go index 02e72b839e..88529936ac 100644 --- a/api4/user_test.go +++ b/api4/user_test.go @@ -93,7 +93,7 @@ func TestCreateUserWithToken(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) ruser, resp := th.Client.CreateUserWithToken(&user, token.Token) CheckNoError(t, resp) @@ -124,7 +124,7 @@ func TestCreateUserWithToken(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) _, resp := th.Client.CreateUserWithToken(&user, "") @@ -141,7 +141,7 @@ func TestCreateUserWithToken(t *testing.T) { model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) token.CreateAt = past49Hours - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) _, resp := th.Client.CreateUserWithToken(&user, token.Token) @@ -170,7 +170,7 @@ func TestCreateUserWithToken(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableUserCreation = false }) @@ -188,7 +188,7 @@ func TestCreateUserWithToken(t *testing.T) { app.TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) enableOpenServer := th.App.Config().TeamSettings.EnableOpenServer defer func() { diff --git a/app/email.go b/app/email.go index 5f3c91695a..6d6f8d9261 100644 --- a/app/email.go +++ b/app/email.go @@ -335,8 +335,8 @@ func (a *App) SendInviteEmails(team *model.Team, senderName string, senderUserId props["name"] = team.Name data := model.MapToJson(props) - if result := <-a.Srv.Store.Token().Save(token); result.Err != nil { - mlog.Error(fmt.Sprintf("Failed to send invite email successfully err=%v", result.Err)) + if err := a.Srv.Store.Token().Save(token); err != nil { + mlog.Error(fmt.Sprintf("Failed to send invite email successfully err=%v", err)) continue } bodyPage.Props["Link"] = fmt.Sprintf("%s/signup_user_complete/?d=%s&t=%s", siteURL, url.QueryEscape(data), url.QueryEscape(token.Token)) diff --git a/app/oauth.go b/app/oauth.go index 198707ef54..0cfba889ff 100644 --- a/app/oauth.go +++ b/app/oauth.go @@ -593,8 +593,8 @@ func (a *App) CompleteSwitchWithOAuth(service string, userData io.Reader, email func (a *App) CreateOAuthStateToken(extra string) (*model.Token, *model.AppError) { token := model.NewToken(model.TOKEN_TYPE_OAUTH, extra) - if result := <-a.Srv.Store.Token().Save(token); result.Err != nil { - return nil, result.Err + if err := a.Srv.Store.Token().Save(token); err != nil { + return nil, err } return token, nil diff --git a/app/oauth_test.go b/app/oauth_test.go index 08d164ba29..0007835fe1 100644 --- a/app/oauth_test.go +++ b/app/oauth_test.go @@ -233,8 +233,7 @@ func TestAuthorizeOAuthUser(t *testing.T) { defer th.TearDown() token := model.NewToken("invalid", "") - result := <-th.App.Srv.Store.Token().Save(token) - require.Nil(t, result.Err) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) state := makeState(token) diff --git a/app/team_test.go b/app/team_test.go index 1d947681fa..efc4245f25 100644 --- a/app/team_test.go +++ b/app/team_test.go @@ -205,7 +205,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_VERIFY_EMAIL, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err == nil { t.Fatal("Should fail on bad token type") @@ -218,7 +218,7 @@ func TestAddUserToTeamByToken(t *testing.T) { model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) token.CreateAt = model.GetMillis() - TEAM_INVITATION_EXPIRY_TIME - 1 - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err == nil { t.Fatal("Should fail on expired token") @@ -230,7 +230,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": model.NewId()}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err == nil { t.Fatal("Should fail on bad team id") @@ -242,7 +242,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.AddUserToTeamByToken(model.NewId(), token.Token); err == nil { t.Fatal("Should fail on bad user id") @@ -254,7 +254,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err != nil { t.Log(err) t.Fatal("Should add user to the team") @@ -274,7 +274,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err == nil { t.Fatal("Should return an error when trying to join a group-constrained team.") } else { @@ -303,7 +303,7 @@ func TestAddUserToTeamByToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) if _, err := th.App.AddUserToTeamByToken(ruser.Id, token.Token); err == nil || err.Where != "JoinUserToTeam" { t.Log(err) diff --git a/app/user.go b/app/user.go index c3c5ae1a0c..225fa67631 100644 --- a/app/user.go +++ b/app/user.go @@ -1349,8 +1349,8 @@ func (a *App) CreatePasswordRecoveryToken(userId, email string) (*model.Token, * token := model.NewToken(TOKEN_TYPE_PASSWORD_RECOVERY, string(jsonData)) - if result := <-a.Srv.Store.Token().Save(token); result.Err != nil { - return nil, result.Err + if err := a.Srv.Store.Token().Save(token); err != nil { + return nil, err } return token, nil @@ -1615,8 +1615,8 @@ func (a *App) CreateVerifyEmailToken(userId string, newEmail string) (*model.Tok token := model.NewToken(TOKEN_TYPE_VERIFY_EMAIL, string(jsonData)) - if result := <-a.Srv.Store.Token().Save(token); result.Err != nil { - return nil, result.Err + if err := a.Srv.Store.Token().Save(token); err != nil { + return nil, err } return token, nil diff --git a/app/user_test.go b/app/user_test.go index 024cbb182c..dc001bb0e5 100644 --- a/app/user_test.go +++ b/app/user_test.go @@ -571,7 +571,7 @@ func TestCreateUserWithToken(t *testing.T) { TOKEN_TYPE_VERIFY_EMAIL, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.CreateUserWithToken(&user, token.Token); err == nil { t.Fatal("Should fail on bad token type") @@ -584,7 +584,7 @@ func TestCreateUserWithToken(t *testing.T) { model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": user.Email}), ) token.CreateAt = model.GetMillis() - TEAM_INVITATION_EXPIRY_TIME - 1 - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.CreateUserWithToken(&user, token.Token); err == nil { t.Fatal("Should fail on expired token") @@ -596,7 +596,7 @@ func TestCreateUserWithToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": model.NewId(), "email": user.Email}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) defer th.App.DeleteToken(token) if _, err := th.App.CreateUserWithToken(&user, token.Token); err == nil { t.Fatal("Should fail on bad team id") @@ -609,7 +609,7 @@ func TestCreateUserWithToken(t *testing.T) { TOKEN_TYPE_TEAM_INVITATION, model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "email": invitationEmail}), ) - <-th.App.Srv.Store.Token().Save(token) + require.Nil(t, th.App.Srv.Store.Token().Save(token)) newUser, err := th.App.CreateUserWithToken(&user, token.Token) if err != nil { t.Log(err) diff --git a/store/sqlstore/tokens_store.go b/store/sqlstore/tokens_store.go index b55a7d7b13..42c9fbb467 100644 --- a/store/sqlstore/tokens_store.go +++ b/store/sqlstore/tokens_store.go @@ -32,16 +32,15 @@ func NewSqlTokenStore(sqlStore SqlStore) store.TokenStore { func (s SqlTokenStore) CreateIndexesIfNotExists() { } -func (s SqlTokenStore) Save(token *model.Token) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - if result.Err = token.IsValid(); result.Err != nil { - return - } +func (s SqlTokenStore) Save(token *model.Token) *model.AppError { + if err := token.IsValid(); err != nil { + return err + } - if err := s.GetMaster().Insert(token); err != nil { - result.Err = model.NewAppError("SqlTokenStore.Save", "store.sql_recover.save.app_error", nil, "", http.StatusInternalServerError) - } - }) + if err := s.GetMaster().Insert(token); err != nil { + return model.NewAppError("SqlTokenStore.Save", "store.sql_recover.save.app_error", nil, "", http.StatusInternalServerError) + } + return nil } func (s SqlTokenStore) Delete(token string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index a310065d9d..1404a085cf 100644 --- a/store/store.go +++ b/store/store.go @@ -449,7 +449,7 @@ type LicenseStore interface { } type TokenStore interface { - Save(recovery *model.Token) StoreChannel + Save(recovery *model.Token) *model.AppError Delete(token string) StoreChannel GetByToken(token string) (*model.Token, *model.AppError) Cleanup() diff --git a/store/storetest/mocks/TokenStore.go b/store/storetest/mocks/TokenStore.go index 2205c78748..266d989cef 100644 --- a/store/storetest/mocks/TokenStore.go +++ b/store/storetest/mocks/TokenStore.go @@ -76,15 +76,15 @@ func (_m *TokenStore) RemoveAllTokensByType(tokenType string) store.StoreChannel } // Save provides a mock function with given fields: recovery -func (_m *TokenStore) Save(recovery *model.Token) store.StoreChannel { +func (_m *TokenStore) Save(recovery *model.Token) *model.AppError { ret := _m.Called(recovery) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.Token) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(*model.Token) *model.AppError); ok { r0 = rf(recovery) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } }