[MM-16184] Migrate "Team.GetChannelUnreadsForTeam" to Sync by default (#11139)

* [MM-16184] Migrate "Team.GetChannelUnreadsForTeam" to Sync by default

* Fix weird indentation
Этот коммит содержится в:
Bolarinwa Balogun
2019-06-12 13:31:17 -04:00
коммит произвёл Jesús Espino
родитель 76bab4f0c2
Коммит 793efb15f6
5 изменённых файлов: 38 добавлений и 33 удалений

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

@@ -797,12 +797,11 @@ func (a *App) AddTeamMemberByInviteId(inviteId, userId string) (*model.TeamMembe
} }
func (a *App) GetTeamUnread(teamId, userId string) (*model.TeamUnread, *model.AppError) { func (a *App) GetTeamUnread(teamId, userId string) (*model.TeamUnread, *model.AppError) {
result := <-a.Srv.Store.Team().GetChannelUnreadsForTeam(teamId, userId) channelUnreads, err := a.Srv.Store.Team().GetChannelUnreadsForTeam(teamId, userId)
if result.Err != nil { if err != nil {
return nil, result.Err return nil, err
} }
channelUnreads := result.Data.([]*model.ChannelUnread)
var teamUnread = &model.TeamUnread{ var teamUnread = &model.TeamUnread{
MsgCount: 0, MsgCount: 0,
MentionCount: 0, MentionCount: 0,

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

@@ -788,11 +788,9 @@ func (s SqlTeamStore) GetChannelUnreadsForAllTeams(excludeTeamId, userId string)
}) })
} }
func (s SqlTeamStore) GetChannelUnreadsForTeam(teamId, userId string) store.StoreChannel { func (s SqlTeamStore) GetChannelUnreadsForTeam(teamId, userId string) ([]*model.ChannelUnread, *model.AppError) {
return store.Do(func(result *store.StoreResult) { query := `
var data []*model.ChannelUnread SELECT
_, err := s.GetReplica().Select(&data,
`SELECT
Channels.TeamId TeamId, Channels.Id ChannelId, (Channels.TotalMsgCount - ChannelMembers.MsgCount) MsgCount, ChannelMembers.MentionCount MentionCount, ChannelMembers.NotifyProps NotifyProps Channels.TeamId TeamId, Channels.Id ChannelId, (Channels.TotalMsgCount - ChannelMembers.MsgCount) MsgCount, ChannelMembers.MentionCount MentionCount, ChannelMembers.NotifyProps NotifyProps
FROM FROM
Channels, ChannelMembers Channels, ChannelMembers
@@ -800,15 +798,15 @@ func (s SqlTeamStore) GetChannelUnreadsForTeam(teamId, userId string) store.Stor
Id = ChannelId Id = ChannelId
AND UserId = :UserId AND UserId = :UserId
AND TeamId = :TeamId AND TeamId = :TeamId
AND DeleteAt = 0`, AND DeleteAt = 0`
map[string]interface{}{"TeamId": teamId, "UserId": userId})
var channels []*model.ChannelUnread
_, err := s.GetReplica().Select(&channels, query, map[string]interface{}{"TeamId": teamId, "UserId": userId})
if err != nil { if err != nil {
result.Err = model.NewAppError("SqlTeamStore.GetChannelUnreadsForTeam", "store.sql_team.get_unread.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError) return nil, model.NewAppError("SqlTeamStore.GetChannelUnreadsForTeam", "store.sql_team.get_unread.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
return
} }
result.Data = data return channels, nil
})
} }
func (s SqlTeamStore) RemoveMember(teamId string, userId string) store.StoreChannel { func (s SqlTeamStore) RemoveMember(teamId string, userId string) store.StoreChannel {

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

@@ -110,7 +110,7 @@ type TeamStore interface {
GetTeamsForUser(userId string) StoreChannel GetTeamsForUser(userId string) StoreChannel
GetTeamsForUserWithPagination(userId string, page, perPage int) StoreChannel GetTeamsForUserWithPagination(userId string, page, perPage int) StoreChannel
GetChannelUnreadsForAllTeams(excludeTeamId, userId string) StoreChannel GetChannelUnreadsForAllTeams(excludeTeamId, userId string) StoreChannel
GetChannelUnreadsForTeam(teamId, userId string) StoreChannel GetChannelUnreadsForTeam(teamId, userId string) ([]*model.ChannelUnread, *model.AppError)
RemoveMember(teamId string, userId string) StoreChannel RemoveMember(teamId string, userId string) StoreChannel
RemoveAllMembersByTeam(teamId string) StoreChannel RemoveAllMembersByTeam(teamId string) StoreChannel
RemoveAllMembersByUser(userId string) StoreChannel RemoveAllMembersByUser(userId string) StoreChannel

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

@@ -286,19 +286,28 @@ func (_m *TeamStore) GetChannelUnreadsForAllTeams(excludeTeamId string, userId s
} }
// GetChannelUnreadsForTeam provides a mock function with given fields: teamId, userId // GetChannelUnreadsForTeam provides a mock function with given fields: teamId, userId
func (_m *TeamStore) GetChannelUnreadsForTeam(teamId string, userId string) store.StoreChannel { func (_m *TeamStore) GetChannelUnreadsForTeam(teamId string, userId string) ([]*model.ChannelUnread, *model.AppError) {
ret := _m.Called(teamId, userId) ret := _m.Called(teamId, userId)
var r0 store.StoreChannel var r0 []*model.ChannelUnread
if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { if rf, ok := ret.Get(0).(func(string, string) []*model.ChannelUnread); ok {
r0 = rf(teamId, userId) r0 = rf(teamId, userId)
} else { } else {
if ret.Get(0) != nil { if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel) r0 = ret.Get(0).([]*model.ChannelUnread)
} }
} }
return r0 var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok {
r1 = rf(teamId, userId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
} }
// GetMember provides a mock function with given fields: teamId, userId // GetMember provides a mock function with given fields: teamId, userId

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

@@ -1292,10 +1292,9 @@ func testGetChannelUnreadsForTeam(t *testing.T, ss store.Store) {
cm2 := &model.ChannelMember{ChannelId: c2.Id, UserId: m1.UserId, NotifyProps: model.GetDefaultChannelNotifyProps(), MsgCount: 90} cm2 := &model.ChannelMember{ChannelId: c2.Id, UserId: m1.UserId, NotifyProps: model.GetDefaultChannelNotifyProps(), MsgCount: 90}
store.Must(ss.Channel().SaveMember(cm2)) store.Must(ss.Channel().SaveMember(cm2))
if r1 := <-ss.Team().GetChannelUnreadsForTeam(m1.TeamId, m1.UserId); r1.Err != nil { if ms, err := ss.Team().GetChannelUnreadsForTeam(m1.TeamId, m1.UserId); err != nil {
t.Fatal(r1.Err) t.Fatal(err)
} else { } else {
ms := r1.Data.([]*model.ChannelUnread)
if len(ms) != 2 { if len(ms) != 2 {
t.Fatal("wrong length") t.Fatal("wrong length")
} }