[MM-16184] Migrate "Team.GetChannelUnreadsForTeam" to Sync by default (#11139)
* [MM-16184] Migrate "Team.GetChannelUnreadsForTeam" to Sync by default * Fix weird indentation
Этот коммит содержится в:
коммит произвёл
Jesús Espino
родитель
76bab4f0c2
Коммит
793efb15f6
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user