diff options
author | Joram Wilander <jwawilander@gmail.com> | 2018-07-16 15:49:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-16 15:49:26 -0400 |
commit | 275731578e72d2c6e12cfb2fc315d3446474faec (patch) | |
tree | 25df7525ed2244c7dec5be44495b45ffc0ae1023 /app/plugin_api.go | |
parent | 88eef609ab712097ff2b13a2ca45c31ea6fa7df2 (diff) | |
download | chat-275731578e72d2c6e12cfb2fc315d3446474faec.tar.gz chat-275731578e72d2c6e12cfb2fc315d3446474faec.tar.bz2 chat-275731578e72d2c6e12cfb2fc315d3446474faec.zip |
MM-10254 Add plugin APIs for getting/updating user statuses (#9101)
* Add plugin APIs for getting/updating user statuses
* Add and update tests
* Updates per feedback
Diffstat (limited to 'app/plugin_api.go')
-rw-r--r-- | app/plugin_api.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/app/plugin_api.go b/app/plugin_api.go index 4130fc4b2..d7b116c0f 100644 --- a/app/plugin_api.go +++ b/app/plugin_api.go @@ -6,6 +6,7 @@ package app import ( "encoding/json" "fmt" + "net/http" "strings" "github.com/mattermost/mattermost-server/mlog" @@ -144,6 +145,31 @@ func (api *PluginAPI) UpdateUser(user *model.User) (*model.User, *model.AppError return api.app.UpdateUser(user, true) } +func (api *PluginAPI) GetUserStatus(userId string) (*model.Status, *model.AppError) { + return api.app.GetStatus(userId) +} + +func (api *PluginAPI) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.AppError) { + return api.app.GetUserStatusesByIds(userIds) +} + +func (api *PluginAPI) UpdateUserStatus(userId, status string) (*model.Status, *model.AppError) { + switch status { + case model.STATUS_ONLINE: + api.app.SetStatusOnline(userId, true) + case model.STATUS_OFFLINE: + api.app.SetStatusOffline(userId, true) + case model.STATUS_AWAY: + api.app.SetStatusAwayIfNeeded(userId, true) + case model.STATUS_DND: + api.app.SetStatusDoNotDisturb(userId) + default: + return nil, model.NewAppError("UpdateUserStatus", "plugin.api.update_user_status.bad_status", nil, "unrecognized status", http.StatusBadRequest) + } + + return api.app.GetStatus(userId) +} + func (api *PluginAPI) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError) { return api.app.CreateChannel(channel, false) } |