Migrate Channel.GetChannelMembersTimezones to Sync by default (#11242)

* Migrate Channel.GetChannelMembersTimezones to Sync by default

[MM-16334] Fixes #11226

* refactor: style fixup
This commit is contained in:
krjn
2019-06-19 08:23:08 +00:00
committed by Jesús Espino
parent c8f334ab1c
commit 209f70e80b
4 changed files with 35 additions and 29 deletions

View File

@@ -1282,11 +1282,10 @@ func (a *App) GetChannelMembersPage(channelId string, page, perPage int) (*model
}
func (a *App) GetChannelMembersTimezones(channelId string) ([]string, *model.AppError) {
result := <-a.Srv.Store.Channel().GetChannelMembersTimezones(channelId)
if result.Err != nil {
return nil, result.Err
membersTimezones, err := a.Srv.Store.Channel().GetChannelMembersTimezones(channelId)
if err != nil {
return nil, err
}
membersTimezones := result.Data.([]map[string]string)
var timezones []string
for _, membersTimezone := range membersTimezones {

View File

@@ -1401,25 +1401,23 @@ func (s SqlChannelStore) GetMembers(channelId string, offset, limit int) store.S
})
}
func (s SqlChannelStore) GetChannelMembersTimezones(channelId string) store.StoreChannel {
return store.Do(func(result *store.StoreResult) {
var dbMembersTimezone []map[string]string
_, err := s.GetReplica().Select(&dbMembersTimezone, `
SELECT
Users.Timezone
FROM
ChannelMembers
LEFT JOIN
Users ON ChannelMembers.UserId = Id
WHERE ChannelId = :ChannelId
`, map[string]interface{}{
"ChannelId": channelId})
if err != nil {
result.Err = model.NewAppError("SqlChannelStore.GetChannelMembersTimezones", "store.sql_channel.get_members.app_error", nil, "channel_id="+channelId+","+err.Error(), http.StatusInternalServerError)
return
}
result.Data = dbMembersTimezone
})
func (s SqlChannelStore) GetChannelMembersTimezones(channelId string) ([]model.StringMap, *model.AppError) {
var dbMembersTimezone []model.StringMap
_, err := s.GetReplica().Select(&dbMembersTimezone, `
SELECT
Users.Timezone
FROM
ChannelMembers
LEFT JOIN
Users ON ChannelMembers.UserId = Id
WHERE ChannelId = :ChannelId
`, map[string]interface{}{"ChannelId": channelId})
if err != nil {
return nil, model.NewAppError("SqlChannelStore.GetChannelMembersTimezones", "store.sql_channel.get_members.app_error", nil, "channel_id="+channelId+","+err.Error(), http.StatusInternalServerError)
}
return dbMembersTimezone, nil
}
func (s SqlChannelStore) GetMember(channelId string, userId string) (*model.ChannelMember, *model.AppError) {

View File

@@ -161,7 +161,7 @@ type ChannelStore interface {
UpdateMember(member *model.ChannelMember) StoreChannel
GetMembers(channelId string, offset, limit int) StoreChannel
GetMember(channelId string, userId string) (*model.ChannelMember, *model.AppError)
GetChannelMembersTimezones(channelId string) StoreChannel
GetChannelMembersTimezones(channelId string) ([]model.StringMap, *model.AppError)
GetAllChannelMembersForUser(userId string, allowFromCache bool, includeDeleted bool) StoreChannel
InvalidateAllChannelMembersForUser(userId string)
IsUserInChannelUseCache(userId string, channelId string) bool

View File

@@ -393,19 +393,28 @@ func (_m *ChannelStore) GetChannelMembersForExport(userId string, teamId string)
}
// GetChannelMembersTimezones provides a mock function with given fields: channelId
func (_m *ChannelStore) GetChannelMembersTimezones(channelId string) store.StoreChannel {
func (_m *ChannelStore) GetChannelMembersTimezones(channelId string) ([]model.StringMap, *model.AppError) {
ret := _m.Called(channelId)
var r0 store.StoreChannel
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok {
var r0 []model.StringMap
if rf, ok := ret.Get(0).(func(string) []model.StringMap); ok {
r0 = rf(channelId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(store.StoreChannel)
r0 = ret.Get(0).([]model.StringMap)
}
}
return r0
var r1 *model.AppError
if rf, ok := ret.Get(1).(func(string) *model.AppError); ok {
r1 = rf(channelId)
} else {
if ret.Get(1) != nil {
r1 = ret.Get(1).(*model.AppError)
}
}
return r0, r1
}
// GetChannelUnread provides a mock function with given fields: channelId, userId