From e8c9ccaa7e47f1cba3d2b126f6ebbb092fa43235 Mon Sep 17 00:00:00 2001 From: Daniel Hodan Date: Wed, 17 Oct 2018 16:37:52 +0200 Subject: GH-9607: Add GetTeamsForUser to plugin API (#9644) * add GetTeamsForUser to plugin api * Add version comment, fix comment typo --- app/plugin_api.go | 4 ++++ plugin/api.go | 5 +++++ plugin/client_rpc_generated.go | 29 +++++++++++++++++++++++++++++ plugin/plugintest/api.go | 25 +++++++++++++++++++++++++ 4 files changed, 63 insertions(+) diff --git a/app/plugin_api.go b/app/plugin_api.go index 9afc5bb73..85bcc0660 100644 --- a/app/plugin_api.go +++ b/app/plugin_api.go @@ -111,6 +111,10 @@ func (api *PluginAPI) UpdateTeam(team *model.Team) (*model.Team, *model.AppError return api.app.UpdateTeam(team) } +func (api *PluginAPI) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) { + return api.app.GetTeamsForUser(userId) +} + func (api *PluginAPI) CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) { return api.app.AddTeamMember(teamId, userId) } diff --git a/plugin/api.go b/plugin/api.go index 19425bf04..c2429538d 100644 --- a/plugin/api.go +++ b/plugin/api.go @@ -98,6 +98,11 @@ type API interface { // UpdateTeam updates a team. UpdateTeam(team *model.Team) (*model.Team, *model.AppError) + // GetTeamsForUser returns list of teams of given user ID. + // + // Minimum server version: 5.6 + GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) + // CreateTeamMember creates a team membership. CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError) diff --git a/plugin/client_rpc_generated.go b/plugin/client_rpc_generated.go index b53f10aff..5c14f4d4a 100644 --- a/plugin/client_rpc_generated.go +++ b/plugin/client_rpc_generated.go @@ -1177,6 +1177,35 @@ func (s *apiRPCServer) UpdateTeam(args *Z_UpdateTeamArgs, returns *Z_UpdateTeamR return nil } +type Z_GetTeamsForUserArgs struct { + A string +} + +type Z_GetTeamsForUserReturns struct { + A []*model.Team + B *model.AppError +} + +func (g *apiRPCClient) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) { + _args := &Z_GetTeamsForUserArgs{userId} + _returns := &Z_GetTeamsForUserReturns{} + if err := g.client.Call("Plugin.GetTeamsForUser", _args, _returns); err != nil { + log.Printf("RPC call to GetTeamsForUser API failed: %s", err.Error()) + } + return _returns.A, _returns.B +} + +func (s *apiRPCServer) GetTeamsForUser(args *Z_GetTeamsForUserArgs, returns *Z_GetTeamsForUserReturns) error { + if hook, ok := s.impl.(interface { + GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) + }); ok { + returns.A, returns.B = hook.GetTeamsForUser(args.A) + } else { + return encodableError(fmt.Errorf("API GetTeamsForUser called but not implemented.")) + } + return nil +} + type Z_CreateTeamMemberArgs struct { A string B string diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index d17c9dc5c..066cdfa7e 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -988,6 +988,31 @@ func (_m *API) GetTeams() ([]*model.Team, *model.AppError) { return r0, r1 } +// GetTeamsForUser provides a mock function with given fields: userId +func (_m *API) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError) { + ret := _m.Called(userId) + + var r0 []*model.Team + if rf, ok := ret.Get(0).(func(string) []*model.Team); ok { + r0 = rf(userId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*model.Team) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(userId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetUser provides a mock function with given fields: userId func (_m *API) GetUser(userId string) (*model.User, *model.AppError) { ret := _m.Called(userId) -- cgit v1.2.3-1-g7c22