[MM-16170] Migrate Team.GetTeamsByUserId to Sync by default (#11100)

* [MM-16170] Migrate Team.GetTeamsByUserId to Sync by default

* Fixing comments
Этот коммит содержится в:
Mounica Paladugu
2019-07-09 09:21:18 -07:00
коммит произвёл Joram Wilander
родитель 0ec609d159
Коммит ff89b2c8e1
9 изменённых файлов: 36 добавлений и 38 удалений

Просмотреть файл

@@ -192,13 +192,12 @@ func (a *App) FindTeamIdForFilename(post *model.Post, filename string) string {
name, _ := url.QueryUnescape(split[4])
// This post is in a direct channel so we need to figure out what team the files are stored under.
result := <-a.Srv.Store.Team().GetTeamsByUserId(post.UserId)
if result.Err != nil {
mlog.Error(fmt.Sprintf("Unable to get teams when migrating post to use FileInfo, err=%v", result.Err), mlog.String("post_id", post.Id))
teams, err := a.Srv.Store.Team().GetTeamsByUserId(post.UserId)
if err != nil {
mlog.Error(fmt.Sprintf("Unable to get teams when migrating post to use FileInfo, err=%v", err), mlog.String("post_id", post.Id))
return ""
}
teams := result.Data.([]*model.Team)
if len(teams) == 1 {
// The user has only one team so the post must've been sent from it
return teams[0].Id

Просмотреть файл

@@ -22,13 +22,12 @@ func (a *App) sendNotificationEmail(notification *postNotification, user *model.
post := notification.post
if channel.IsGroupOrDirect() {
result := <-a.Srv.Store.Team().GetTeamsByUserId(user.Id)
if result.Err != nil {
return result.Err
teams, err := a.Srv.Store.Team().GetTeamsByUserId(user.Id)
if err != nil {
return err
}
// if the recipient isn't in the current user's team, just pick one
teams := result.Data.([]*model.Team)
found := false
for i := range teams {

Просмотреть файл

@@ -654,11 +654,7 @@ func (a *App) SearchPrivateTeams(term string) ([]*model.Team, *model.AppError) {
}
func (a *App) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) {
result := <-a.Srv.Store.Team().GetTeamsByUserId(userId)
if result.Err != nil {
return nil, result.Err
}
return result.Data.([]*model.Team), nil
return a.Srv.Store.Team().GetTeamsByUserId(userId)
}
func (a *App) GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) {

Просмотреть файл

@@ -189,13 +189,13 @@ func (a *App) IsFirstUserAccount() bool {
// indexUser fetches the required information to index a user from the database and
// calls the elasticsearch interface method
func (a *App) indexUser(user *model.User) *model.AppError {
userTeams := <-a.Srv.Store.Team().GetTeamsByUserId(user.Id)
if userTeams.Err != nil {
return userTeams.Err
userTeams, err := a.Srv.Store.Team().GetTeamsByUserId(user.Id)
if err != nil {
return err
}
userTeamsIds := []string{}
for _, team := range userTeams.Data.([]*model.Team) {
for _, team := range userTeams {
userTeamsIds = append(userTeamsIds, team.Id)
}

Просмотреть файл

@@ -71,9 +71,8 @@ func TestLeaveTeam(t *testing.T) {
t.Fatal("profile should not be on team")
}
if result := <-th.App.Srv.Store.Team().GetTeamsByUserId(th.BasicUser.Id); result.Err != nil {
teamMembers := result.Data.([]*model.TeamMember)
if len(teamMembers) > 0 {
if teams, err := th.App.Srv.Store.Team().GetTeamsByUserId(th.BasicUser.Id); err != nil {
if len(teams) > 0 {
t.Fatal("Shouldn't be in team")
}
}

Просмотреть файл

@@ -376,16 +376,13 @@ func (s SqlTeamStore) GetAllPage(offset int, limit int) ([]*model.Team, *model.A
return teams, nil
}
func (s SqlTeamStore) GetTeamsByUserId(userId string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
var data []*model.Team
if _, err := s.GetReplica().Select(&data, "SELECT Teams.* FROM Teams, TeamMembers WHERE TeamMembers.TeamId = Teams.Id AND TeamMembers.UserId = :UserId AND TeamMembers.DeleteAt = 0 AND Teams.DeleteAt = 0", map[string]interface{}{"UserId": userId}); err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetTeamsByUserId", "store.sql_team.get_all.app_error", nil, err.Error(), http.StatusInternalServerError)
return
}
func (s SqlTeamStore) GetTeamsByUserId(userId string) ([]*model.Team, *model.AppError) {
var teams []*model.Team
if _, err := s.GetReplica().Select(&teams, "SELECT Teams.* FROM Teams, TeamMembers WHERE TeamMembers.TeamId = Teams.Id AND TeamMembers.UserId = :UserId AND TeamMembers.DeleteAt = 0 AND Teams.DeleteAt = 0", map[string]interface{}{"UserId": userId}); err != nil {
return nil, model.NewAppError("SqlTeamStore.GetTeamsByUserId", "store.sql_team.get_all.app_error", nil, err.Error(), http.StatusInternalServerError)
}
result.Data = data
})
return teams, nil
}
func (s SqlTeamStore) GetAllPrivateTeamListing() ([]*model.Team, *model.AppError) {

Просмотреть файл

@@ -96,7 +96,7 @@ type TeamStore interface {
GetAllPrivateTeamPageListing(offset int, limit int) ([]*model.Team, *model.AppError)
GetAllTeamListing() ([]*model.Team, *model.AppError)
GetAllTeamPageListing(offset int, limit int) ([]*model.Team, *model.AppError)
GetTeamsByUserId(userId string) StoreChannel
GetTeamsByUserId(userId string) ([]*model.Team, *model.AppError)
GetByInviteId(inviteId string) (*model.Team, *model.AppError)
PermanentDelete(teamId string) *model.AppError
AnalyticsTeamCount() (int64, *model.AppError)

Просмотреть файл

@@ -522,19 +522,28 @@ func (_m *TeamStore) GetTeamsByScheme(schemeId string, offset int, limit int) ([
}
// GetTeamsByUserId provides a mock function with given fields: userId
func (_m *TeamStore) GetTeamsByUserId(userId string) store.StoreChannel {
func (_m *TeamStore) GetTeamsByUserId(userId string) ([]*model.Team, *model.AppError) {
ret := _m.Called(userId)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok {
var r0 []*model.Team
if rf, ok := ret.Get(0).(func(string) []*model.Team); ok {
r0 = rf(userId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).([]*model.Team)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
r1 = rf(userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetTeamsForUser provides a mock function with given fields: userId

Просмотреть файл

@@ -431,10 +431,9 @@ func testTeamStoreByUserId(t *testing.T, ss store.Store) {
m1 := &model.TeamMember{TeamId: o1.Id, UserId: model.NewId()}
store.Must(ss.Team().SaveMember(m1, -1))
if r1 := <-ss.Team().GetTeamsByUserId(m1.UserId); r1.Err != nil {
t.Fatal(r1.Err)
if teams, err := ss.Team().GetTeamsByUserId(m1.UserId); err != nil {
t.Fatal(err)
} else {
teams := r1.Data.([]*model.Team)
if len(teams) == 0 {
t.Fatal("Should return a team")
}