main.route.js 3.04 KB
var env = process.env.NODE_ENV || 'development'; 
var responseMsg = require('../modules/helper/responseMsg.js');
var log = require('../modules/helper/log.js');
var constants = require('../modules/helper/constants.js');

var cfg = require('../config/config.js').get(env);
var load = require('express-load');


module.exports = function (app) {
    
    

    app.all('/*', function (req, res,next) {
          
        
        // console.log(req.params)
        // console.log(req.query)        
        // console.log(req.url)
        var splitPath = req._parsedUrl.pathname.split("/");
        //0 = ip host 
        //1 = 'cmf'
        //2 = 'v1'

        var objectData = {
            method:req.method,
            req:req,
            res:res,
            next:next,
            splitPath:splitPath,
            pathname:req._parsedUrl.pathname
        };

        switch (splitPath[3]) {
            case "customers":
                if(splitPath[splitPath.length-1] == "membercards")
                {
                    doMembercards(objectData);
                }                    
                else
                {
                    objectData.modules = app.modules.customer;
                    doCustomers(objectData);      
                }          
                break;
            case "vizcards":
                    doVizcard(objectData);                
                break;
            default: next();
                break;
        }


        

    });

    function doVizcard(objectData)
    {
        log.log("Route : "+objectData.pathname+" => doVizcard");
        objectData.next();
    }

    function doMembercards(objectData)
    {
        log.log("Route : "+objectData.pathname+" => doMembercards");
        objectData.next();
        
    }
    
    function doCustomers(objectData)
    {
        log.log("Route : "+objectData.pathname+" => doCustomers");     

        // "/cmf/v1/customers/:customerId",
        // "/cmf/v1/customers/:userType/:userData",
        // "/cmf/v1/customers"

        // console.log(objectData.modules);
        var doAction = function(){

            if(objectData.method == constants.METHOD.GET)
                objectData.modules.customerCtrl.customer(objectData.req,objectData.res,objectData.next);
            else
                objectData.modules.postCustomerCtrl.postCustomer(objectData.req,objectData.res,objectData.next);
        };

        switch (objectData.splitPath.length) {
            case 4:
                
                doAction();
                break;
            case 5:
                objectData.req.params = {
                    customerId:objectData.splitPath[4]
                };
                doAction();    
                break;
            case 6:
                objectData.req.params = {
                    userType:objectData.splitPath[4],
                    userData:objectData.splitPath[5],
                };
                doAction();
                break;
        
            default:
                objectData.next();
                break;
        }
    }

    
    
};