From e0f5ee97b487a1fc1d96fc7ef8649cfd69a1c0f7 Mon Sep 17 00:00:00 2001 From: Kautilya Tripathi Date: Wed, 31 Oct 2018 18:59:20 +0530 Subject: [PATCH] fixes #9611 (#9664) --- app/plugin_api.go | 4 ++ plugin/api.go | 5 ++ plugin/client_rpc_generated.go | 30 +++++++++++ plugin/plugintest/api.go | 94 +++++++++++++++++++++------------- 4 files changed, 98 insertions(+), 35 deletions(-) diff --git a/app/plugin_api.go b/app/plugin_api.go index a07a076529..1821a661e3 100644 --- a/app/plugin_api.go +++ b/app/plugin_api.go @@ -306,6 +306,10 @@ func (api *PluginAPI) GetChannelMembers(channelId string, page, perPage int) (*m return api.app.GetChannelMembersPage(channelId, page, perPage) } +func (api *PluginAPI) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) { + return api.app.GetChannelMembersByIds(channelId, userIds) +} + func (api *PluginAPI) UpdateChannelMemberRoles(channelId, userId, newRoles string) (*model.ChannelMember, *model.AppError) { return api.app.UpdateChannelMemberRoles(channelId, userId, newRoles) } diff --git a/plugin/api.go b/plugin/api.go index f1b9ec01fd..ad970cb601 100644 --- a/plugin/api.go +++ b/plugin/api.go @@ -185,6 +185,11 @@ type API interface { // Minimum server version: 5.6 GetChannelMembers(channelId string, page, perPage int) (*model.ChannelMembers, *model.AppError) + // GetChannelMembersByIds gets a channel membership for a particular User + // + // Minimum server version: 5.6 + GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) + // UpdateChannelMemberRoles updates a user's roles for a channel. UpdateChannelMemberRoles(channelId, userId, newRoles string) (*model.ChannelMember, *model.AppError) diff --git a/plugin/client_rpc_generated.go b/plugin/client_rpc_generated.go index 81469a20f8..1263b14d30 100644 --- a/plugin/client_rpc_generated.go +++ b/plugin/client_rpc_generated.go @@ -1898,6 +1898,36 @@ func (s *apiRPCServer) GetChannelMembers(args *Z_GetChannelMembersArgs, returns return nil } +type Z_GetChannelMembersByIdsArgs struct { + A string + B []string +} + +type Z_GetChannelMembersByIdsReturns struct { + A *model.ChannelMembers + B *model.AppError +} + +func (g *apiRPCClient) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) { + _args := &Z_GetChannelMembersByIdsArgs{channelId, userIds} + _returns := &Z_GetChannelMembersByIdsReturns{} + if err := g.client.Call("Plugin.GetChannelMembersByIds", _args, _returns); err != nil { + log.Printf("RPC call to GetChannelMembersByIds API failed: %s", err.Error()) + } + return _returns.A, _returns.B +} + +func (s *apiRPCServer) GetChannelMembersByIds(args *Z_GetChannelMembersByIdsArgs, returns *Z_GetChannelMembersByIdsReturns) error { + if hook, ok := s.impl.(interface { + GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) + }); ok { + returns.A, returns.B = hook.GetChannelMembersByIds(args.A, args.B) + } else { + return encodableError(fmt.Errorf("API GetChannelMembersByIds called but not implemented.")) + } + return nil +} + type Z_UpdateChannelMemberRolesArgs struct { A string B string diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index d24b955ae4..e3ce108193 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -458,22 +458,22 @@ func (_m *API) GetChannelMembers(channelId string, page int, perPage int) (*mode return r0, r1 } -// GetChannelsForTeamForUser provides a mock function with given fields: teamId, userId, includeDeleted -func (_m *API) GetChannelsForTeamForUser(teamId string, userId string, includeDeleted bool) (*model.ChannelList, *model.AppError) { - ret := _m.Called(teamId, userId, includeDeleted) +// GetChannelMembersByIds provides a mock function with given fields: channelId, userIds +func (_m *API) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError) { + ret := _m.Called(channelId, userIds) - var r0 *model.ChannelList - if rf, ok := ret.Get(0).(func(string, string, bool) *model.ChannelList); ok { - r0 = rf(teamId, userId, includeDeleted) + var r0 *model.ChannelMembers + if rf, ok := ret.Get(0).(func(string, []string) *model.ChannelMembers); ok { + r0 = rf(channelId, userIds) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*model.ChannelList) + r0 = ret.Get(0).(*model.ChannelMembers) } } var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string, string, bool) *model.AppError); ok { - r1 = rf(teamId, userId, includeDeleted) + if rf, ok := ret.Get(1).(func(string, []string) *model.AppError); ok { + r1 = rf(channelId, userIds) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*model.AppError) @@ -508,6 +508,31 @@ func (_m *API) GetChannelStats(channelId string) (*model.ChannelStats, *model.Ap return r0, r1 } +// GetChannelsForTeamForUser provides a mock function with given fields: teamId, userId, includeDeleted +func (_m *API) GetChannelsForTeamForUser(teamId string, userId string, includeDeleted bool) (*model.ChannelList, *model.AppError) { + ret := _m.Called(teamId, userId, includeDeleted) + + var r0 *model.ChannelList + if rf, ok := ret.Get(0).(func(string, string, bool) *model.ChannelList); ok { + r0 = rf(teamId, userId, includeDeleted) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.ChannelList) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, string, bool) *model.AppError); ok { + r1 = rf(teamId, userId, includeDeleted) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetConfig provides a mock function with given fields: func (_m *API) GetConfig() *model.Config { ret := _m.Called() @@ -549,6 +574,31 @@ func (_m *API) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, return r0, r1 } +// GetEmoji provides a mock function with given fields: emojiId +func (_m *API) GetEmoji(emojiId string) (*model.Emoji, *model.AppError) { + ret := _m.Called(emojiId) + + var r0 *model.Emoji + if rf, ok := ret.Get(0).(func(string) *model.Emoji); ok { + r0 = rf(emojiId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.Emoji) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(emojiId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetEmojiByName provides a mock function with given fields: name func (_m *API) GetEmojiByName(name string) (*model.Emoji, *model.AppError) { ret := _m.Called(name) @@ -606,31 +656,6 @@ func (_m *API) GetEmojiImage(emojiId string) ([]byte, string, *model.AppError) { return r0, r1, r2 } -// GetEmoji provides a mock function with given fields: emojiId -func (_m *API) GetEmoji(emojiId string) (*model.Emoji, *model.AppError) { - ret := _m.Called(emojiId) - - var r0 *model.Emoji - if rf, ok := ret.Get(0).(func(string) *model.Emoji); ok { - r0 = rf(emojiId) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*model.Emoji) - } - } - - var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { - r1 = rf(emojiId) - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).(*model.AppError) - } - } - - return r0, r1 -} - // GetFileInfo provides a mock function with given fields: fileId func (_m *API) GetFileInfo(fileId string) (*model.FileInfo, *model.AppError) { ret := _m.Called(fileId) @@ -1307,7 +1332,6 @@ func (_m *API) GetUsersInChannel(channelId string, sortBy string, page int, perP } var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string, string, int, int) *model.AppError); ok { r1 = rf(channelId, sortBy, page, perPage) } else {