[MM-16159] Migrate "Team.GetByName" to Sync by default (#11107)

* [MM-16159] Migrate "Team.GetByName" to Sync by default

* Refactor to correct mistakes and remove irrelevant code
Этот коммит содержится в:
Bolarinwa Balogun
2019-06-11 09:35:17 -04:00
коммит произвёл Elias Nahum
родитель 3b03c9afcb
Коммит 88202a76d9
10 изменённых файлов: 56 добавлений и 52 удалений

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

@@ -1208,12 +1208,13 @@ func (a *App) GetChannelsByNames(channelNames []string, teamId string) ([]*model
func (a *App) GetChannelByNameForTeamName(channelName, teamName string, includeDeleted bool) (*model.Channel, *model.AppError) {
var team *model.Team
result := <-a.Srv.Store.Team().GetByName(teamName)
if result.Err != nil {
result.Err.StatusCode = http.StatusNotFound
return nil, result.Err
team, err := a.Srv.Store.Team().GetByName(teamName)
if err != nil {
err.StatusCode = http.StatusNotFound
return nil, err
}
team = result.Data.(*model.Team)
var result store.StoreResult
if includeDeleted {
result = <-a.Srv.Store.Channel().GetByNameIncludeDeleted(team.Id, channelName, false)

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

@@ -140,19 +140,19 @@ func (job *EmailBatchingJob) checkPendingNotifications(now time.Time, handler fu
continue
}
result := <-job.server.Store.Team().GetByName(notifications[0].teamName)
if result.Err != nil {
mlog.Error(fmt.Sprint("Unable to find Team id for notification", result.Err))
team, err := job.server.Store.Team().GetByName(notifications[0].teamName)
if err != nil {
mlog.Error(fmt.Sprint("Unable to find Team id for notification", err))
continue
}
if team, ok := result.Data.(*model.Team); ok {
if team != nil {
inspectedTeamNames[notification.teamName] = team.Id
}
// if the user has viewed any channels in this team since the notification was queued, delete
// all queued notifications
result = <-job.server.Store.Channel().GetMembersForUser(inspectedTeamNames[notification.teamName], userId)
result := <-job.server.Store.Channel().GetMembersForUser(inspectedTeamNames[notification.teamName], userId)
if result.Err != nil {
mlog.Error(fmt.Sprint("Unable to find ChannelMembers for user", result.Err))
continue

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

@@ -162,9 +162,9 @@ func (a *App) ImportTeam(data *TeamImportData, dryRun bool) *model.AppError {
}
var team *model.Team
if result := <-a.Srv.Store.Team().GetByName(*data.Name); result.Err == nil {
team = result.Data.(*model.Team)
} else {
team, err := a.Srv.Store.Team().GetByName(*data.Name)
if err != nil {
team = &model.Team{}
}
@@ -220,11 +220,10 @@ func (a *App) ImportChannel(data *ChannelImportData, dryRun bool) *model.AppErro
return nil
}
result := <-a.Srv.Store.Team().GetByName(*data.Team)
if result.Err != nil {
return model.NewAppError("BulkImport", "app.import.import_channel.team_not_found.error", map[string]interface{}{"TeamName": *data.Team}, result.Err.Error(), http.StatusBadRequest)
team, err := a.Srv.Store.Team().GetByName(*data.Team)
if err != nil {
return model.NewAppError("BulkImport", "app.import.import_channel.team_not_found.error", map[string]interface{}{"TeamName": *data.Team}, err.Error(), http.StatusBadRequest)
}
team := result.Data.(*model.Team)
var channel *model.Channel
if result := <-a.Srv.Store.Channel().GetByNameIncludeDeleted(team.Id, *data.Name, true); result.Err == nil {
@@ -942,13 +941,12 @@ func (a *App) ImportPost(data *PostImportData, dryRun bool) *model.AppError {
return nil
}
result := <-a.Srv.Store.Team().GetByName(*data.Team)
if result.Err != nil {
return model.NewAppError("BulkImport", "app.import.import_post.team_not_found.error", map[string]interface{}{"TeamName": *data.Team}, result.Err.Error(), http.StatusBadRequest)
team, err := a.Srv.Store.Team().GetByName(*data.Team)
if err != nil {
return model.NewAppError("BulkImport", "app.import.import_post.team_not_found.error", map[string]interface{}{"TeamName": *data.Team}, err.Error(), http.StatusBadRequest)
}
team := result.Data.(*model.Team)
result = <-a.Srv.Store.Channel().GetByName(team.Id, *data.Channel, false)
result := <-a.Srv.Store.Channel().GetByName(team.Id, *data.Channel, false)
if result.Err != nil {
return model.NewAppError("BulkImport", "app.import.import_post.channel_not_found.error", map[string]interface{}{"ChannelName": *data.Channel}, result.Err.Error(), http.StatusBadRequest)
}

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

@@ -592,12 +592,12 @@ func (a *App) GetTeam(teamId string) (*model.Team, *model.AppError) {
}
func (a *App) GetTeamByName(name string) (*model.Team, *model.AppError) {
result := <-a.Srv.Store.Team().GetByName(name)
if result.Err != nil {
result.Err.StatusCode = http.StatusNotFound
return nil, result.Err
team, err := a.Srv.Store.Team().GetByName(name)
if err != nil {
err.StatusCode = http.StatusNotFound
return nil, err
}
return result.Data.(*model.Team), nil
return team, nil
}
func (a *App) GetTeamByInviteId(inviteId string) (*model.Team, *model.AppError) {
@@ -1045,7 +1045,7 @@ func (a *App) InviteNewUsersToTeam(emailList []string, teamId, senderId string)
}
func (a *App) FindTeamByName(name string) bool {
if result := <-a.Srv.Store.Team().GetByName(name); result.Err != nil {
if _, err := a.Srv.Store.Team().GetByName(name); err != nil {
return false
}
return true

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

@@ -19,15 +19,13 @@ func getTeamsFromTeamArgs(a *app.App, teamArgs []string) []*model.Team {
func getTeamFromTeamArg(a *app.App, teamArg string) *model.Team {
var team *model.Team
if result := <-a.Srv.Store.Team().GetByName(teamArg); result.Err == nil {
team = result.Data.(*model.Team)
}
team, err := a.Srv.Store.Team().GetByName(teamArg)
if team == nil {
if t, err := a.Srv.Store.Team().Get(teamArg); err == nil {
var t *model.Team
if t, err = a.Srv.Store.Team().Get(teamArg); err == nil {
team = t
}
}
return team
}

0
output Обычный файл
Просмотреть файл

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

@@ -295,17 +295,15 @@ func (s SqlTeamStore) GetByInviteId(inviteId string) store.StoreChannel {
})
}
func (s SqlTeamStore) GetByName(name string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
team := model.Team{}
func (s SqlTeamStore) GetByName(name string) (*model.Team, *model.AppError) {
if err := s.GetReplica().SelectOne(&team, "SELECT * FROM Teams WHERE Name = :Name", map[string]interface{}{"Name": name}); err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetByName", "store.sql_team.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
return
}
team := model.Team{}
result.Data = &team
})
err := s.GetReplica().SelectOne(&team, "SELECT * FROM Teams WHERE Name = :Name", map[string]interface{}{"Name": name})
if err != nil {
return nil, model.NewAppError("SqlTeamStore.GetByName", "store.sql_team.get_by_name.app_error", nil, "name="+name+", "+err.Error(), http.StatusInternalServerError)
}
return &team, nil
}
func (s SqlTeamStore) SearchByName(name string) ([]*model.Team, *model.AppError) {

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

@@ -85,7 +85,7 @@ type TeamStore interface {
Update(team *model.Team) (*model.Team, *model.AppError)
UpdateDisplayName(name string, teamId string) StoreChannel
Get(id string) (*model.Team, *model.AppError)
GetByName(name string) StoreChannel
GetByName(name string) (*model.Team, *model.AppError)
SearchByName(name string) ([]*model.Team, *model.AppError)
SearchAll(term string) StoreChannel
SearchOpen(term string) StoreChannel

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

@@ -245,19 +245,28 @@ func (_m *TeamStore) GetByInviteId(inviteId string) store.StoreChannel {
}
// GetByName provides a mock function with given fields: name
func (_m *TeamStore) GetByName(name string) store.StoreChannel {
func (_m *TeamStore) GetByName(name string) (*model.Team, *model.AppError) {
ret := _m.Called(name)
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(name)
} 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(name)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetChannelUnreadsForAllTeams provides a mock function with given fields: excludeTeamId, userId

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

@@ -149,15 +149,15 @@ func testTeamStoreGetByName(t *testing.T, ss store.Store) {
t.Fatal(err)
}
if r1 := <-ss.Team().GetByName(o1.Name); r1.Err != nil {
t.Fatal(r1.Err)
if team, err := ss.Team().GetByName(o1.Name); err != nil {
t.Fatal(err)
} else {
if r1.Data.(*model.Team).ToJson() != o1.ToJson() {
if team.ToJson() != o1.ToJson() {
t.Fatal("invalid returned team")
}
}
if err := (<-ss.Team().GetByName("")).Err; err == nil {
if _, err := ss.Team().GetByName(""); err == nil {
t.Fatal("Missing id should have failed")
}
}