1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // application.js
- // This file contains a function for serving the application specific requests.
- var servehandler = require( './serve-handler' ),
- helpers = require( './helpers' ),
- persistence = require( './persistence' ),
- admin = require( './admin' );
- // Requests are attempted to be served as if they pertain to a specific application.
- // If any of these attempts succesfully serve the request, true is returned.
- // If these attempts do not succesfully serve the request, false is returned.
- function Serve( request, response, parsedRequest ) {
- // The first step is to attempt to serve the file out of the support/client/lib directory structure.
- // If there is no private path, and we have an application request, then we're the initial request and
- // thus we should be serving the default 'load the application' index page, which lives at
- // support/client/lib/index.html, hence the fileName logic.
- var fileName = parsedRequest[ 'private_path' ];
- if ( fileName == undefined ) {
- fileName = "index.html";
- }
- if ( servehandler.File( request, response, helpers.JoinPath( global.vwfRoot + "/support/client/lib/", fileName ) ) ) {
- return true;
- }
- // If the file was not served out of the support/client/lib path, the next attempt is to test if the file can be served out of
- // the actual application path in the public directory.
- if ( servehandler.File( request, response, helpers.JoinPath( global.applicationRoot, parsedRequest[ 'public_path' ], parsedRequest[ 'private_path' ] ) ) ) {
- return true;
- }
- // If the file was not found in the application path within the public directory, the next step is to see if it is a component within the
- // application path within the public directory.
- if ( servehandler.Component( request, response, helpers.JoinPath( global.applicationRoot, parsedRequest[ 'public_path' ], parsedRequest[ 'private_path' ] ) ) ) {
- return true;
- }
- // If the request was still not served, try and see if the persistence functionality will serve this request.
- if ( persistence.Serve( request, response, parsedRequest ) ) {
- return true;
- }
- // Finally, test if the admin functionality can serve this request.
- if ( admin.Serve( request, response, parsedRequest ) ) {
- return true;
- }
- //Nothing managed to serve this request, return false.
- return false;
- }
- // Make the application functionality available via global since
- // persistence needs to be able to call this, and this cannot
- // require persistence AND have persistence require this.
- global.application = {};
- global.application.Serve = Serve;
- exports.Serve = Serve;
|