summaryrefslogtreecommitdiffstats
path: root/api/websocket_router.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-01-13 13:53:37 -0500
committerGitHub <noreply@github.com>2017-01-13 13:53:37 -0500
commit97558f6a6ec4c53fa69035fb430ead209d9c222d (patch)
tree6fc57f5b75b15a025348c6e295cea6aedb9e69ae /api/websocket_router.go
parent07bad4d6d518a9012a20fec8309cd625f57c7a8c (diff)
downloadchat-97558f6a6ec4c53fa69035fb430ead209d9c222d.tar.gz
chat-97558f6a6ec4c53fa69035fb430ead209d9c222d.tar.bz2
chat-97558f6a6ec4c53fa69035fb430ead209d9c222d.zip
PLT-4938 Add app package and move logic over from api package (#4931)
* Add app package and move logic over from api package * Change app package functions to return errors * Move non-api tests into app package * Fix merge
Diffstat (limited to 'api/websocket_router.go')
-rw-r--r--api/websocket_router.go92
1 files changed, 0 insertions, 92 deletions
diff --git a/api/websocket_router.go b/api/websocket_router.go
deleted file mode 100644
index 989d41373..000000000
--- a/api/websocket_router.go
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-package api
-
-import (
- l4g "github.com/alecthomas/log4go"
-
- "github.com/mattermost/platform/model"
- "github.com/mattermost/platform/utils"
-)
-
-type WebSocketRouter struct {
- handlers map[string]*webSocketHandler
-}
-
-func NewWebSocketRouter() *WebSocketRouter {
- router := &WebSocketRouter{}
- router.handlers = make(map[string]*webSocketHandler)
- return router
-}
-
-func (wr *WebSocketRouter) Handle(action string, handler *webSocketHandler) {
- wr.handlers[action] = handler
-}
-
-func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketRequest) {
- if r.Action == "" {
- err := model.NewLocAppError("ServeWebSocket", "api.web_socket_router.no_action.app_error", nil, "")
- wr.ReturnWebSocketError(conn, r, err)
- return
- }
-
- if r.Seq <= 0 {
- err := model.NewLocAppError("ServeWebSocket", "api.web_socket_router.bad_seq.app_error", nil, "")
- wr.ReturnWebSocketError(conn, r, err)
- return
- }
-
- if r.Action == model.WEBSOCKET_AUTHENTICATION_CHALLENGE {
- token, ok := r.Data["token"].(string)
- if !ok {
- conn.WebSocket.Close()
- return
- }
-
- session := GetSession(token)
-
- if session == nil || session.IsExpired() {
- conn.WebSocket.Close()
- } else {
- go SetStatusOnline(session.UserId, session.Id, false)
-
- conn.SessionToken = session.Token
- conn.UserId = session.UserId
-
- resp := model.NewWebSocketResponse(model.STATUS_OK, r.Seq, nil)
- resp.DoPreComputeJson()
- conn.Send <- resp
- conn.SendHello()
- }
-
- return
- }
-
- if !conn.isAuthenticated() {
- err := model.NewLocAppError("ServeWebSocket", "api.web_socket_router.not_authenticated.app_error", nil, "")
- wr.ReturnWebSocketError(conn, r, err)
- return
- }
-
- var handler *webSocketHandler
- if h, ok := wr.handlers[r.Action]; !ok {
- err := model.NewLocAppError("ServeWebSocket", "api.web_socket_router.bad_action.app_error", nil, "")
- wr.ReturnWebSocketError(conn, r, err)
- return
- } else {
- handler = h
- }
-
- handler.ServeWebSocket(conn, r)
-}
-
-func (wr *WebSocketRouter) ReturnWebSocketError(conn *WebConn, r *model.WebSocketRequest, err *model.AppError) {
- l4g.Error(utils.T("api.web_socket_router.log.error"), r.Seq, conn.UserId, err.SystemMessage(utils.T), err.DetailedError)
-
- err.DetailedError = ""
- errorResp := model.NewWebSocketError(r.Seq, err)
- errorResp.DoPreComputeJson()
-
- conn.Send <- errorResp
-}