summaryrefslogtreecommitdiffstats
path: root/app/plugin_api.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2018-07-16 15:49:26 -0400
committerGitHub <noreply@github.com>2018-07-16 15:49:26 -0400
commit275731578e72d2c6e12cfb2fc315d3446474faec (patch)
tree25df7525ed2244c7dec5be44495b45ffc0ae1023 /app/plugin_api.go
parent88eef609ab712097ff2b13a2ca45c31ea6fa7df2 (diff)
downloadchat-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.go26
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)
}