From 5872bf9c2f9b81c7aad761d40a6970f6267f1424 Mon Sep 17 00:00:00 2001 From: Martin Kraft Date: Mon, 30 Jul 2018 15:06:08 -0400 Subject: Pr 9039 (#9187) * MM-11065: Allow to search and get archived channels from the API * Fixing more tests * Add some unit tests * Add includeDeleted parameter to session permissions check function * More test fixing * Adding archive channels list in channels search * Add restriction for archived channel edition * Reverting permissions checks modification * Changed the query parameter to include_deleted * Enable search archive channels as true by default * Adding tests for verify search on deleted channels * Allowing to override archive channels during the imports * Fixed test * Search in archive channels from the API must be explicitly requested * Removing includeDeleted parameter from GetChannelByName and GetChannelByNameForTeam * Back to ViewArchivedChannels config * Fixing tests * Reverting GetChannelByName parameter * Add include deleted parameter on GetChannel functions in plugins api * Fixing tests --- plugin/api.go | 4 ++-- plugin/client_rpc_generated.go | 18 ++++++++++-------- plugin/example_help_test.go | 2 +- plugin/plugintest/api.go | 28 ++++++++++++++-------------- 4 files changed, 27 insertions(+), 25 deletions(-) (limited to 'plugin') diff --git a/plugin/api.go b/plugin/api.go index 6d4976c4f..0b413d4d1 100644 --- a/plugin/api.go +++ b/plugin/api.go @@ -108,10 +108,10 @@ type API interface { GetChannel(channelId string) (*model.Channel, *model.AppError) // GetChannelByName gets a channel by its name, given a team id. - GetChannelByName(teamId, name string) (*model.Channel, *model.AppError) + GetChannelByName(teamId, name string, includeDeleted bool) (*model.Channel, *model.AppError) // GetChannelByNameForTeamName gets a channel by its name, given a team name. - GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError) + GetChannelByNameForTeamName(teamName, channelName string, includeDeleted bool) (*model.Channel, *model.AppError) // GetDirectChannel gets a direct message channel. GetDirectChannel(userId1, userId2 string) (*model.Channel, *model.AppError) diff --git a/plugin/client_rpc_generated.go b/plugin/client_rpc_generated.go index 9eac71be4..98b906186 100644 --- a/plugin/client_rpc_generated.go +++ b/plugin/client_rpc_generated.go @@ -1349,6 +1349,7 @@ func (s *apiRPCServer) GetChannel(args *Z_GetChannelArgs, returns *Z_GetChannelR type Z_GetChannelByNameArgs struct { A string B string + C bool } type Z_GetChannelByNameReturns struct { @@ -1356,8 +1357,8 @@ type Z_GetChannelByNameReturns struct { B *model.AppError } -func (g *apiRPCClient) GetChannelByName(teamId, name string) (*model.Channel, *model.AppError) { - _args := &Z_GetChannelByNameArgs{teamId, name} +func (g *apiRPCClient) GetChannelByName(teamId, name string, includeDeleted bool) (*model.Channel, *model.AppError) { + _args := &Z_GetChannelByNameArgs{teamId, name, includeDeleted} _returns := &Z_GetChannelByNameReturns{} if err := g.client.Call("Plugin.GetChannelByName", _args, _returns); err != nil { log.Printf("RPC call to GetChannelByName API failed: %s", err.Error()) @@ -1367,9 +1368,9 @@ func (g *apiRPCClient) GetChannelByName(teamId, name string) (*model.Channel, *m func (s *apiRPCServer) GetChannelByName(args *Z_GetChannelByNameArgs, returns *Z_GetChannelByNameReturns) error { if hook, ok := s.impl.(interface { - GetChannelByName(teamId, name string) (*model.Channel, *model.AppError) + GetChannelByName(teamId, name string, includeDeleted bool) (*model.Channel, *model.AppError) }); ok { - returns.A, returns.B = hook.GetChannelByName(args.A, args.B) + returns.A, returns.B = hook.GetChannelByName(args.A, args.B, args.C) } else { return fmt.Errorf("API GetChannelByName called but not implemented.") } @@ -1379,6 +1380,7 @@ func (s *apiRPCServer) GetChannelByName(args *Z_GetChannelByNameArgs, returns *Z type Z_GetChannelByNameForTeamNameArgs struct { A string B string + C bool } type Z_GetChannelByNameForTeamNameReturns struct { @@ -1386,8 +1388,8 @@ type Z_GetChannelByNameForTeamNameReturns struct { B *model.AppError } -func (g *apiRPCClient) GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError) { - _args := &Z_GetChannelByNameForTeamNameArgs{teamName, channelName} +func (g *apiRPCClient) GetChannelByNameForTeamName(teamName, channelName string, includeDeleted bool) (*model.Channel, *model.AppError) { + _args := &Z_GetChannelByNameForTeamNameArgs{teamName, channelName, includeDeleted} _returns := &Z_GetChannelByNameForTeamNameReturns{} if err := g.client.Call("Plugin.GetChannelByNameForTeamName", _args, _returns); err != nil { log.Printf("RPC call to GetChannelByNameForTeamName API failed: %s", err.Error()) @@ -1397,9 +1399,9 @@ func (g *apiRPCClient) GetChannelByNameForTeamName(teamName, channelName string) func (s *apiRPCServer) GetChannelByNameForTeamName(args *Z_GetChannelByNameForTeamNameArgs, returns *Z_GetChannelByNameForTeamNameReturns) error { if hook, ok := s.impl.(interface { - GetChannelByNameForTeamName(teamName, channelName string) (*model.Channel, *model.AppError) + GetChannelByNameForTeamName(teamName, channelName string, includeDeleted bool) (*model.Channel, *model.AppError) }); ok { - returns.A, returns.B = hook.GetChannelByNameForTeamName(args.A, args.B) + returns.A, returns.B = hook.GetChannelByNameForTeamName(args.A, args.B, args.C) } else { return fmt.Errorf("API GetChannelByNameForTeamName called but not implemented.") } diff --git a/plugin/example_help_test.go b/plugin/example_help_test.go index 3f9be9a20..175b6588e 100644 --- a/plugin/example_help_test.go +++ b/plugin/example_help_test.go @@ -30,7 +30,7 @@ func (p *HelpPlugin) OnConfigurationChange() error { return nil } - channel, err := p.API.GetChannelByName(p.ChannelName, team.Id) + channel, err := p.API.GetChannelByName(p.ChannelName, team.Id, false) if err != nil { p.API.LogError("failed to find channel", "channel_name", p.ChannelName) return nil diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index 473ef6d2b..70e90df4b 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -308,13 +308,13 @@ func (_m *API) GetChannel(channelId string) (*model.Channel, *model.AppError) { return r0, r1 } -// GetChannelByName provides a mock function with given fields: teamId, name -func (_m *API) GetChannelByName(teamId string, name string) (*model.Channel, *model.AppError) { - ret := _m.Called(teamId, name) +// GetChannelByName provides a mock function with given fields: teamId, name, includeDeleted +func (_m *API) GetChannelByName(teamId string, name string, includeDeleted bool) (*model.Channel, *model.AppError) { + ret := _m.Called(teamId, name, includeDeleted) var r0 *model.Channel - if rf, ok := ret.Get(0).(func(string, string) *model.Channel); ok { - r0 = rf(teamId, name) + if rf, ok := ret.Get(0).(func(string, string, bool) *model.Channel); ok { + r0 = rf(teamId, name, includeDeleted) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*model.Channel) @@ -322,8 +322,8 @@ func (_m *API) GetChannelByName(teamId string, name string) (*model.Channel, *mo } var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok { - r1 = rf(teamId, name) + if rf, ok := ret.Get(1).(func(string, string, bool) *model.AppError); ok { + r1 = rf(teamId, name, includeDeleted) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*model.AppError) @@ -333,13 +333,13 @@ func (_m *API) GetChannelByName(teamId string, name string) (*model.Channel, *mo return r0, r1 } -// GetChannelByNameForTeamName provides a mock function with given fields: teamName, channelName -func (_m *API) GetChannelByNameForTeamName(teamName string, channelName string) (*model.Channel, *model.AppError) { - ret := _m.Called(teamName, channelName) +// GetChannelByNameForTeamName provides a mock function with given fields: teamName, channelName, includeDeleted +func (_m *API) GetChannelByNameForTeamName(teamName string, channelName string, includeDeleted bool) (*model.Channel, *model.AppError) { + ret := _m.Called(teamName, channelName, includeDeleted) var r0 *model.Channel - if rf, ok := ret.Get(0).(func(string, string) *model.Channel); ok { - r0 = rf(teamName, channelName) + if rf, ok := ret.Get(0).(func(string, string, bool) *model.Channel); ok { + r0 = rf(teamName, channelName, includeDeleted) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*model.Channel) @@ -347,8 +347,8 @@ func (_m *API) GetChannelByNameForTeamName(teamName string, channelName string) } var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok { - r1 = rf(teamName, channelName) + if rf, ok := ret.Get(1).(func(string, string, bool) *model.AppError); ok { + r1 = rf(teamName, channelName, includeDeleted) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*model.AppError) -- cgit v1.2.3-1-g7c22