summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJason Simmons <1382389+jasimmons@users.noreply.github.com>2018-10-22 08:49:50 -0400
committerJoram Wilander <jwawilander@gmail.com>2018-10-22 08:49:50 -0400
commit1ee872578c734956acc7f5e4168638de244c3ce2 (patch)
treef0cf22a79c7b1b903ce5093479ee2cda509e7805 /app
parent6c6638f05e99f1463ff33983540aedb35271dbfc (diff)
downloadchat-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')
-rw-r--r--app/plugin_api.go16
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)
}