|
@@ -4,6 +4,7 @@
|
|
|
|
|
|
var parseurl = require( './parse-url' ),
|
|
var parseurl = require( './parse-url' ),
|
|
serve = require( './serve' ),
|
|
serve = require( './serve' ),
|
|
|
|
+ persistence = require( './persistence' ),
|
|
servehandler = require( './serve-handler' ),
|
|
servehandler = require( './serve-handler' ),
|
|
helpers = require( './helpers' ),
|
|
helpers = require( './helpers' ),
|
|
application = require( './application' ),
|
|
application = require( './application' ),
|
|
@@ -170,6 +171,70 @@ function HandleWebAppRequest(request, response) {
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function parseUrlForReflector( pathName ) {
|
|
|
|
+
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ var namespace = pathName;
|
|
|
|
+ if(!namespace) return null;
|
|
|
|
+ if (namespace[namespace.length - 1] != "/")
|
|
|
|
+ namespace += "/";
|
|
|
|
+
|
|
|
|
+ return parseurl.Process( namespace );
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ catch (e)
|
|
|
|
+ {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+function GetLoadForSocket( processedURL ) {
|
|
|
|
+ if ( processedURL[ 'private_path' ] ) {
|
|
|
|
+ return persistence.GetLoadInformation( processedURL );
|
|
|
|
+ }
|
|
|
|
+ return { 'save_name': undefined, 'save_revision': undefined, 'explicit_revision': undefined, 'application_path': undefined };
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function HandleReflectorRequest(request, response) {
|
|
|
|
+ //var updatedURL = url.parse(request.url).pathname;
|
|
|
|
+
|
|
|
|
+ // var address = request.headers.host;
|
|
|
|
+ var res = false;
|
|
|
|
+
|
|
|
|
+ if (request.method === 'POST' && request.url === '/parseurl') {
|
|
|
|
+ let body = [];
|
|
|
|
+ request.on('data', (chunk) => {
|
|
|
|
+ body.push(chunk);
|
|
|
|
+ }).on('end', () => {
|
|
|
|
+ body = Buffer.concat(body).toString();
|
|
|
|
+ let pathUrl = JSON.parse(body);
|
|
|
|
+ let refPath = parseUrlForReflector( pathUrl.url );
|
|
|
|
+
|
|
|
|
+ //prepare for persistence request in case that's what this is
|
|
|
|
+ let loadInfo = GetLoadForSocket( refPath );
|
|
|
|
+ let saveObject = persistence.LoadSaveObject( loadInfo );
|
|
|
|
+
|
|
|
|
+ let resObj = {
|
|
|
|
+ path: refPath,
|
|
|
|
+ loadInfo: loadInfo,
|
|
|
|
+ saveObject: saveObject
|
|
|
|
+ }
|
|
|
|
+ //console.log(resObj);
|
|
|
|
+ let json = JSON.stringify(resObj);
|
|
|
|
+ response.writeHead(200, {"Content-Type": "application/json"});
|
|
|
|
+ response.end(json);
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ //response.statusCode = 404;
|
|
|
|
+ //response.end();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return res;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
// Serve is the top level function for serving requests. It first attempts to
|
|
// Serve is the top level function for serving requests. It first attempts to
|
|
// serve the request based on parsing the incoming URL.
|
|
// serve the request based on parsing the incoming URL.
|
|
// If that fails, it continues to attempt to serve the request as a 'proxy' request,
|
|
// If that fails, it continues to attempt to serve the request as a 'proxy' request,
|
|
@@ -178,7 +243,9 @@ function HandleWebAppRequest(request, response) {
|
|
// directory structure.
|
|
// directory structure.
|
|
// If all that fails, serve up a 404 response since the request was not handled.
|
|
// If all that fails, serve up a 404 response since the request was not handled.
|
|
function Serve( request, response ) {
|
|
function Serve( request, response ) {
|
|
- var handledRequest = HandleParsableRequest( request, response );
|
|
|
|
|
|
+ var handledRequest = HandleReflectorRequest( request, response );
|
|
|
|
+ if ( ! ( handledRequest ) ) {
|
|
|
|
+ handledRequest = HandleParsableRequest( request, response ); }
|
|
if ( ! ( handledRequest ) ) {
|
|
if ( ! ( handledRequest ) ) {
|
|
handledRequest = HandleProxyRequest( request, response );
|
|
handledRequest = HandleProxyRequest( request, response );
|
|
}
|
|
}
|