index.js 2.12 KB
let express = require('express');
let router = express.Router();
let connection = require("../../utils/mongoDB")
var utils = require('../../utils/utils');
var stats = require('../../utils/stats');
var log = require('../../utils/log');
var constants = require('../../utils/constants');


var allow = ['general','holiday','shift','service','job','specialist','room'];

router.get('/:collection',async function (req, res,next) {
    var cmd = req.params.collection; 

    var checkStart = start(req,cmd);
    if(checkStart.err)
    {
        var result = checkStart.err;
        end(req,"Unknow");

    }else
    {  
        var collection = req.params.collection;
        
        var query = Object.assign(req.params, req.query);
        var filter = await utils.getQueryFilter(query.filter);
        var result = await connection.reqMongo(req,req.method,filter,collection)
        end(req,cmd);
    }

    
    res.status(200).json(result);
    next();
});

router.post('/:collection',async function (req, res,next) {
    start(req)
    var collection = req.params.collection;

    var query = req.body;
    var result = await connection.reqMongo(req,req.method,query,collection)

    end(req);
    res.status(200).json(result);
    next();
});

// router.put('/:collection',async function (req, res) {
//     var query = Object.assign(req.params, req.query);
//     var result = await connection.reqMongo(req, query)
//     res.status(200).json(result);
// });

// router.delete('/:collection',async function (req, res) {
//     var query = Object.assign(req.params, req.query);
//     var result = await connection.reqMongo(req, query)
//     res.status(200).json(result);
// });

function start(req,cmd) {
    log.startlog(req,cmd,'session','identity');

    if(allow.indexOf(cmd) != -1)
    {        
        stats.receiveRequest(req.method,cmd);
        log.detailRequestFE(req);
        return {};
    }else
    {
        stats.receiveUnknow();
        log.detailRequestFE(req);
        return {err:constants.RESPONSERESULT.UNKNOW};

    }
};

function end(req,cmd) {   
    stats.sendResponse(req.method,cmd);
    log.detailResponseFE(req);
};
module.exports = router;