summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hodan <daniel.hodan@czertbytes.de>2018-10-18 15:11:30 +0200
committerJoram Wilander <jwawilander@gmail.com>2018-10-18 09:11:30 -0400
commitdc946f85168d6b375e185f53cb1a02636be6d7eb (patch)
tree54337e10e5a7f65dd1927e3303ad2419fccfde76
parent3bc89083fca64a1d096cc897f13d0a9b68433a8f (diff)
downloadchat-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
-rw-r--r--app/plugin_api.go4
-rw-r--r--plugin/api.go5
-rw-r--r--plugin/client_rpc_generated.go29
-rw-r--r--plugin/plugintest/api.go25
4 files changed, 63 insertions, 0 deletions
diff --git a/app/plugin_api.go b/app/plugin_api.go
index 32e3d6303..3e03f8597 100644
--- a/app/plugin_api.go
+++ b/app/plugin_api.go
@@ -164,6 +164,10 @@ func (api *PluginAPI) GetUserByUsername(name string) (*model.User, *model.AppErr
return api.app.GetUserByUsername(name)
}
+func (api *PluginAPI) GetUsersByUsernames(usernames []string) ([]*model.User, *model.AppError) {
+ return api.app.GetUsersByUsernames(usernames, true)
+}
+
func (api *PluginAPI) GetUsersInTeam(teamId string, page int, perPage int) ([]*model.User, *model.AppError) {
return api.app.GetUsersInTeam(teamId, page, perPage)
}
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)