Adds support for GMs in shared channels (#31403)
* Adds support for GMs in shared channels * Fix linter * Remove creatorID from slack call --------- Co-authored-by: Miguel de la Cruz <miguel@ctrlz.es>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
07edaa875b
Коммит
43018759e5
@@ -2858,11 +2858,11 @@ func (s *RetryLayerChannelStore) Restore(channelID string, timestamp int64) erro
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) {
|
||||
func (s *RetryLayerChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64, channelOptions ...model.ChannelOption) (*model.Channel, error) {
|
||||
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.ChannelStore.Save(rctx, channel, maxChannelsPerTeam)
|
||||
result, err := s.ChannelStore.Save(rctx, channel, maxChannelsPerTeam, channelOptions...)
|
||||
if err == nil {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ func (c *SearchChannelStore) indexChannel(rctx request.CTX, channel *model.Chann
|
||||
}
|
||||
}
|
||||
|
||||
func (c *SearchChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannels int64) (*model.Channel, error) {
|
||||
newChannel, err := c.ChannelStore.Save(rctx, channel, maxChannels)
|
||||
func (c *SearchChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannels int64, channelOptions ...model.ChannelOption) (*model.Channel, error) {
|
||||
newChannel, err := c.ChannelStore.Save(rctx, channel, maxChannels, channelOptions...)
|
||||
if err == nil {
|
||||
c.indexChannel(rctx, newChannel)
|
||||
}
|
||||
|
||||
@@ -616,7 +616,11 @@ func (s SqlChannelStore) upsertPublicChannelT(transaction *sqlxTxWrapper, channe
|
||||
}
|
||||
|
||||
// Save writes the (non-direct) channel to the database.
|
||||
func (s SqlChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64) (_ *model.Channel, err error) {
|
||||
func (s SqlChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64, channelOptions ...model.ChannelOption) (_ *model.Channel, err error) {
|
||||
for _, option := range channelOptions {
|
||||
option(channel)
|
||||
}
|
||||
|
||||
if channel.DeleteAt != 0 {
|
||||
return nil, store.NewErrInvalidInput("Channel", "DeleteAt", channel.DeleteAt)
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ type TeamStore interface {
|
||||
}
|
||||
|
||||
type ChannelStore interface {
|
||||
Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error)
|
||||
Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64, channelOptions ...model.ChannelOption) (*model.Channel, error)
|
||||
CreateDirectChannel(ctx request.CTX, userID *model.User, otherUserID *model.User, channelOptions ...model.ChannelOption) (*model.Channel, error)
|
||||
SaveDirectChannel(ctx request.CTX, channel *model.Channel, member1 *model.ChannelMember, member2 *model.ChannelMember) (*model.Channel, error)
|
||||
Update(ctx request.CTX, channel *model.Channel) (*model.Channel, error)
|
||||
|
||||
@@ -2537,9 +2537,16 @@ func (_m *ChannelStore) Restore(channelID string, timestamp int64) error {
|
||||
return r0
|
||||
}
|
||||
|
||||
// Save provides a mock function with given fields: rctx, channel, maxChannelsPerTeam
|
||||
func (_m *ChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) {
|
||||
ret := _m.Called(rctx, channel, maxChannelsPerTeam)
|
||||
// Save provides a mock function with given fields: rctx, channel, maxChannelsPerTeam, channelOptions
|
||||
func (_m *ChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64, channelOptions ...model.ChannelOption) (*model.Channel, error) {
|
||||
_va := make([]interface{}, len(channelOptions))
|
||||
for _i := range channelOptions {
|
||||
_va[_i] = channelOptions[_i]
|
||||
}
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, rctx, channel, maxChannelsPerTeam)
|
||||
_ca = append(_ca, _va...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
if len(ret) == 0 {
|
||||
panic("no return value specified for Save")
|
||||
@@ -2547,19 +2554,19 @@ func (_m *ChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChanne
|
||||
|
||||
var r0 *model.Channel
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(0).(func(request.CTX, *model.Channel, int64) (*model.Channel, error)); ok {
|
||||
return rf(rctx, channel, maxChannelsPerTeam)
|
||||
if rf, ok := ret.Get(0).(func(request.CTX, *model.Channel, int64, ...model.ChannelOption) (*model.Channel, error)); ok {
|
||||
return rf(rctx, channel, maxChannelsPerTeam, channelOptions...)
|
||||
}
|
||||
if rf, ok := ret.Get(0).(func(request.CTX, *model.Channel, int64) *model.Channel); ok {
|
||||
r0 = rf(rctx, channel, maxChannelsPerTeam)
|
||||
if rf, ok := ret.Get(0).(func(request.CTX, *model.Channel, int64, ...model.ChannelOption) *model.Channel); ok {
|
||||
r0 = rf(rctx, channel, maxChannelsPerTeam, channelOptions...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*model.Channel)
|
||||
}
|
||||
}
|
||||
|
||||
if rf, ok := ret.Get(1).(func(request.CTX, *model.Channel, int64) error); ok {
|
||||
r1 = rf(rctx, channel, maxChannelsPerTeam)
|
||||
if rf, ok := ret.Get(1).(func(request.CTX, *model.Channel, int64, ...model.ChannelOption) error); ok {
|
||||
r1 = rf(rctx, channel, maxChannelsPerTeam, channelOptions...)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
@@ -2394,10 +2394,10 @@ func (s *TimerLayerChannelStore) Restore(channelID string, timestamp int64) erro
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *TimerLayerChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) {
|
||||
func (s *TimerLayerChannelStore) Save(rctx request.CTX, channel *model.Channel, maxChannelsPerTeam int64, channelOptions ...model.ChannelOption) (*model.Channel, error) {
|
||||
start := time.Now()
|
||||
|
||||
result, err := s.ChannelStore.Save(rctx, channel, maxChannelsPerTeam)
|
||||
result, err := s.ChannelStore.Save(rctx, channel, maxChannelsPerTeam, channelOptions...)
|
||||
|
||||
elapsed := float64(time.Since(start)) / float64(time.Second)
|
||||
if s.Root.Metrics != nil {
|
||||
|
||||
Ссылка в новой задаче
Block a user