Example #1
0
        private object routeRequest(IAppController ctrl, string route, HttpContext http)
        {
            var    request = http.Request;
            object result;

            switch (route)
            {
            case "/session/init": {
                var sessionId = request.Require("sessionId");
                result = ctrl.Init(sessionId);
                break;
            }

            case "/session/connect": {
                var sessionId = request.Require("sessionId");
                result = ctrl.Connect(sessionId);
                break;
            }

            case "/fb-accepted": {
                var sessionId = request.Require("state");
                var code      = request.Require("code");
                result = ctrl.ConnectionAccepted(sessionId, code);
                break;
            }

            case "/session/connect/wait": {
                var sessionId = request.Require("sessionId");
                result = ctrl.WaitForConnection(sessionId);
                break;
            }

            case "/session/disconnect": {
                var sessionId = request.Require("sessionId");
                result = ctrl.Disconnect(sessionId);
                break;
            }

            case "/photo/upload": {
                var sessionId = request.Require("sessionId");
                var photo     = request.Require <PhotoRqst>();
                result = ctrl.UploadPhoto(sessionId, photo, http);
                break;
            }

            case "/post/publish": {
                var sessionId = request.Require("sessionId");
                var post      = request.Require <PostRqst>();
                result = ctrl.PublishPost(sessionId, post);
                break;
            }

            default:
                throw new ApplicationException($"Route '{route}' is not found");
            }

            return(result);
        }