diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-03-28 04:58:19 -0400 |
---|---|---|
committer | George Goldberg <george@gberg.me> | 2017-03-28 09:58:19 +0100 |
commit | daca0d93f621bcb1daae149c178af0631bcd120a (patch) | |
tree | 6127936c76dbc6fd20a7377385469980e5bd72e3 /wsapi/status.go | |
parent | ca8b8d1245026672b1a56d256bb8ff3c8bb1bba9 (diff) | |
download | chat-daca0d93f621bcb1daae149c178af0631bcd120a.tar.gz chat-daca0d93f621bcb1daae149c178af0631bcd120a.tar.bz2 chat-daca0d93f621bcb1daae149c178af0631bcd120a.zip |
Move WebSocket API to it's own package and add websocket v4 endpoint (#5881)
Diffstat (limited to 'wsapi/status.go')
-rw-r--r-- | wsapi/status.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/wsapi/status.go b/wsapi/status.go new file mode 100644 index 000000000..a9ff8831d --- /dev/null +++ b/wsapi/status.go @@ -0,0 +1,38 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package wsapi + +import ( + l4g "github.com/alecthomas/log4go" + "github.com/mattermost/platform/app" + "github.com/mattermost/platform/model" + "github.com/mattermost/platform/utils" +) + +func InitStatus() { + l4g.Debug(utils.T("wsapi.status.init.debug")) + + app.Srv.WebSocketRouter.Handle("get_statuses", ApiWebSocketHandler(getStatuses)) + app.Srv.WebSocketRouter.Handle("get_statuses_by_ids", ApiWebSocketHandler(getStatusesByIds)) +} + +func getStatuses(req *model.WebSocketRequest) (map[string]interface{}, *model.AppError) { + statusMap := app.GetAllStatuses() + return model.StatusMapToInterfaceMap(statusMap), nil +} + +func getStatusesByIds(req *model.WebSocketRequest) (map[string]interface{}, *model.AppError) { + var userIds []string + if userIds = model.ArrayFromInterface(req.Data["user_ids"]); len(userIds) == 0 { + l4g.Error(model.StringInterfaceToJson(req.Data)) + return nil, NewInvalidWebSocketParamError(req.Action, "user_ids") + } + + statusMap, err := app.GetStatusesByIds(userIds) + if err != nil { + return nil, err + } + + return statusMap, nil +} |