diff options
author | Jason Simmons <1382389+jasimmons@users.noreply.github.com> | 2018-10-22 08:49:50 -0400 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2018-10-22 08:49:50 -0400 |
commit | 1ee872578c734956acc7f5e4168638de244c3ce2 (patch) | |
tree | f0cf22a79c7b1b903ce5093479ee2cda509e7805 /app/plugin_api.go | |
parent | 6c6638f05e99f1463ff33983540aedb35271dbfc (diff) | |
download | chat-1ee872578c734956acc7f5e4168638de244c3ce2.tar.gz chat-1ee872578c734956acc7f5e4168638de244c3ce2.tar.bz2 chat-1ee872578c734956acc7f5e4168638de244c3ce2.zip |
GH-9636 plugins api GetUsersInChannelByStatus (#9645)
* adds GetUsersInChannelByStatus to plugin api with generated rpc code.
* fixed typo in comment with actual func name
* replaced Response model with AppError in output of GetUsersInChannelByStatus
* removed etag param from GetUsersInChannelByStatus since it is not used
* plugin api for GetUsersInChannelByStatus updated to take the limit, conforming to the app api.
* fixed an issue in my own logic on app/plugin integration.
* adds GetUsersInChannelByStatus to plugin api with generated rpc code.
* fixed typo in comment with actual func name
* replaced Response model with AppError in output of GetUsersInChannelByStatus
* removed etag param from GetUsersInChannelByStatus since it is not used
* plugin api for GetUsersInChannelByStatus updated to take the limit, conforming to the app api.
* fixed an issue in my own logic on app/plugin integration.
* GetUsersInChannelByStatus changed to more generic GetUsersInChannel which takes a sortBy parameter, allowing for more granular/extensible sorting functionality in the future
* GetUsersInChannel accepts sort parameter of 'username' and 'status'. Both values are consts in model pkg.
* Documents minimum server version for GetUsersInChannel.
* adds GetUsersInChannelByStatus to plugin api with generated rpc code.
* fixed typo in comment with actual func name
* replaced Response model with AppError in output of GetUsersInChannelByStatus
* removed etag param from GetUsersInChannelByStatus since it is not used
* plugin api for GetUsersInChannelByStatus updated to take the limit, conforming to the app api.
* fixed an issue in my own logic on app/plugin integration.
* adds GetUsersInChannelByStatus to plugin api with generated rpc code.
* Resolved conflict on rebase
* replaced Response model with AppError in output of GetUsersInChannelByStatus
* removed etag param from GetUsersInChannelByStatus since it is not used
* plugin api for GetUsersInChannelByStatus updated to take the limit, conforming to the app api.
* fixed an issue in my own logic on app/plugin integration.
* GetUsersInChannelByStatus changed to more generic GetUsersInChannel which takes a sortBy parameter, allowing for more granular/extensible sorting functionality in the future
* GetUsersInChannel accepts sort parameter of 'username' and 'status'. Both values are consts in model pkg.
* Documents minimum server version for GetUsersInChannel.
* replaces GetUsersInChannel from #9608 / #9643 with sortBy functionality
Diffstat (limited to 'app/plugin_api.go')
-rw-r--r-- | app/plugin_api.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/app/plugin_api.go b/app/plugin_api.go index 48f07275e..3bb638a24 100644 --- a/app/plugin_api.go +++ b/app/plugin_api.go @@ -200,6 +200,18 @@ func (api *PluginAPI) UpdateUserStatus(userId, status string) (*model.Status, *m return api.app.GetStatus(userId) } + +func (api *PluginAPI) GetUsersInChannel(channelId, sortBy string, page, perPage int) ([]*model.User, *model.AppError) { + switch sortBy { + case model.CHANNEL_SORT_BY_USERNAME: + return api.app.GetUsersInChannel(channelId, page*perPage, perPage) + case model.CHANNEL_SORT_BY_STATUS: + return api.app.GetUsersInChannelByStatus(channelId, page*perPage, perPage) + default: + return nil, model.NewAppError("GetUsersInChannel", "plugin.api.get_users_in_channel", nil, "invalid sort option", http.StatusBadRequest) + } +} + func (api *PluginAPI) GetLDAPUserAttributes(userId string, attributes []string) (map[string]string, *model.AppError) { if api.app.Ldap == nil { return nil, model.NewAppError("GetLdapUserAttributes", "ent.ldap.disabled.app_error", nil, "", http.StatusNotImplemented) @@ -298,10 +310,6 @@ func (api *PluginAPI) DeleteChannelMember(channelId, userId string) *model.AppEr return api.app.LeaveChannel(channelId, userId) } -func (api *PluginAPI) GetUsersInChannel(channelId string, page int, perPage int) ([]*model.User, *model.AppError) { - return api.app.GetUsersInChannel(channelId, page*perPage, perPage) -} - func (api *PluginAPI) CreatePost(post *model.Post) (*model.Post, *model.AppError) { return api.app.CreatePostMissingChannel(post, true) } |