diff options
author | Daniel Hodan <daniel.hodan@czertbytes.de> | 2018-10-18 15:11:30 +0200 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2018-10-18 09:11:30 -0400 |
commit | dc946f85168d6b375e185f53cb1a02636be6d7eb (patch) | |
tree | 54337e10e5a7f65dd1927e3303ad2419fccfde76 /plugin | |
parent | 3bc89083fca64a1d096cc897f13d0a9b68433a8f (diff) | |
download | chat-dc946f85168d6b375e185f53cb1a02636be6d7eb.tar.gz chat-dc946f85168d6b375e185f53cb1a02636be6d7eb.tar.bz2 chat-dc946f85168d6b375e185f53cb1a02636be6d7eb.zip |
GH-9635: Add GetUsersByUsernames to plugin API (#9647)
* add GetUsersByUsernames to plugin api
* fix GetUsersByUsernames comment
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/api.go | 5 | ||||
-rw-r--r-- | plugin/client_rpc_generated.go | 29 | ||||
-rw-r--r-- | plugin/plugintest/api.go | 25 |
3 files changed, 59 insertions, 0 deletions
diff --git a/plugin/api.go b/plugin/api.go index 660309f57..a9040199e 100644 --- a/plugin/api.go +++ b/plugin/api.go @@ -54,6 +54,11 @@ type API interface { // GetUserByUsername gets a user by their username. GetUserByUsername(name string) (*model.User, *model.AppError) + // GetUsersByUsernames gets users by their usernames. + // + // Minimum server version: 5.6 + GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) + // GetUsersInTeam gets users in team. // // Minimum server version: 5.6 diff --git a/plugin/client_rpc_generated.go b/plugin/client_rpc_generated.go index 4648b86ce..1b87dd9d6 100644 --- a/plugin/client_rpc_generated.go +++ b/plugin/client_rpc_generated.go @@ -827,6 +827,35 @@ func (s *apiRPCServer) GetUserByUsername(args *Z_GetUserByUsernameArgs, returns return nil } +type Z_GetUsersByUsernamesArgs struct { + A []string +} + +type Z_GetUsersByUsernamesReturns struct { + A []*model.User + B *model.AppError +} + +func (g *apiRPCClient) GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) { + _args := &Z_GetUsersByUsernamesArgs{usernames} + _returns := &Z_GetUsersByUsernamesReturns{} + if err := g.client.Call("Plugin.GetUsersByUsernames", _args, _returns); err != nil { + log.Printf("RPC call to GetUsersByUsernames API failed: %s", err.Error()) + } + return _returns.A, _returns.B +} + +func (s *apiRPCServer) GetUsersByUsernames(args *Z_GetUsersByUsernamesArgs, returns *Z_GetUsersByUsernamesReturns) error { + if hook, ok := s.impl.(interface { + GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) + }); ok { + returns.A, returns.B = hook.GetUsersByUsernames(args.A) + } else { + return encodableError(fmt.Errorf("API GetUsersByUsernames called but not implemented.")) + } + return nil +} + type Z_GetUsersInTeamArgs struct { A string B int diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index 78e361e0f..4ef879bad 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -1161,6 +1161,31 @@ func (_m *API) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.A return r0, r1 } +// GetUsersByUsernames provides a mock function with given fields: usernames +func (_m *API) GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) { + ret := _m.Called(usernames) + + var r0 []*model.User + if rf, ok := ret.Get(0).(func([]string) []*model.User); ok { + r0 = rf(usernames) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*model.User) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func([]string) *model.AppError); ok { + r1 = rf(usernames) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetUsersInTeam provides a mock function with given fields: teamId, page, perPage func (_m *API) GetUsersInTeam(teamId string, page int, perPage int) ([]*model.User, *model.AppError) { ret := _m.Called(teamId, page, perPage) |