1 var express = require('express');
2 var router = express.Router();
3 var exec = require('child_process').exec;
4 var util = require('util');
5 var fs = require('fs');
6 var dbRoutes = require('./dbRoutes');
7 var csp = require('./csp');
8 var cookieParser = require('cookie-parser');
9 var csrf = require('csurf');
10 var bodyParser = require('body-parser');
11 //var sax = require('sax'),strict=true,parser = sax.parser(strict);
13 var csrfProtection = csrf({cookie: true});
14 router.use(cookieParser());
16 // SVC_LOGIC table columns
17 var _module=''; // cannot use module its a reserved word
24 //router.use(bodyParser());
25 router.use(bodyParser.urlencoded({ extended: true }));
29 router.get('/listUsers', csp.checkAuth, function(req,res) {
30 dbRoutes.listUsers(req,res, {user:req.session.loggedInAdmin,code:'', msg:''} );
33 router.post('/updateUser', csp.checkAuth, csrfProtection, function(req,res,next){
34 dbRoutes.updateUser(req,res,{code:'',msg:''});
36 router.post('/addUser', csp.checkAuth, csrfProtection, function(req,res) {
37 dbRoutes.addUser(req,res, {code:'', msg:''} );
39 router.get('/deleteUser', csp.checkAuth, csrfProtection, function(req,res) {
40 dbRoutes.deleteUser(req,res, {code:'', msg:''} );
43 //router.get('/activate', csp.checkAuth, function(req,res){
45 //var _module = req.query.module;
46 //var rpc = req.query.rpc;
47 //var version = req.query.version;
48 //var mode = req.query.mode;
50 //dbRoutes.activate(req,res,_module,rpc,version,mode);
53 //router.get('/deactivate', csp.checkAuth, function(req,res){
55 //var _module = req.query.module;
56 //var rpc = req.query.rpc;
57 //var version = req.query.version;
58 //var mode = req.query.mode;
60 //dbRoutes.deactivate(req,res,_module,rpc,version,mode);
63 //router.get('/deleteDG', csp.checkAuth, function(req,res){
65 //var _module = req.query.module;
66 //var rpc = req.query.rpc;
67 //var version = req.query.version;
68 //var mode = req.query.mode;
70 //dbRoutes.deleteDG(req,res,_module,rpc,version,mode);
74 parser.onerror = function (e) {
75 logger.debug('onerror');
78 parser.ontext = function (t) {
79 // got some text. t is the string of text.
80 logger.debug('ontext:'+t);
82 parser.onopentag = function (node) {
83 // opened a tag. node has "name" and "attributes"
84 if ( node.name == 'service-logic' )
86 _module = node.attributes.module;
87 version = node.attributes.version;
89 if ( node.name == 'method' )
91 rpc = node.attributes.rpc;
92 mode = node.attributes.mode;
95 parser.onattribute = function (attr) {
96 // an attribute. attr has "name" and "value"
97 logger.debug('onattribute:'+attr);
99 parser.onend = function () {
100 // parser stream is done, and ready to have more stuff written to it.
101 logger.debug('onend:');
107 //router.post('/upload', csp.checkAuth, function(req, res, next){
110 logger.debug("upload");
111 if(req.files.filename){
112 if (req.files.filename.size == 0) {
114 {code:'danger', msg:'There was an error uploading the file, please try again.'};
115 dbRoutes.listSLA(req,res, resultObj);
117 fs.exists(req.files.filename.path, function(exists) {
119 resultObj = {code:'success', msg:'File sucessfully uploaded.'};
123 var file_buf = fs.readFileSync(req.files.filename.path, "utf8");
124 logger.debug('file '+req.files.filename);
127 // call Dan's svclogic shell script from here
128 var commandToExec = process.cwd()
129 + "/shell/svclogic.sh load "
130 + req.files.filename.path + " "
132 + "/config/svclogic.properties";
134 logger.debug("commandToExec:" + commandToExec);
135 child = exec(commandToExec ,function (error,stdout,stderr){
137 logger.info("error:" + error);
140 logger.info("stderr:" + stderr);
143 logger.info("OUTPUT:" + stdout);
144 dbRoutes.listSLA(req,res, resultObj);
147 // remove the grave accents, the sax parser does not like them
148 //parser.write(file_buf.replace(/\`/g,'').toString('utf8')).close();
149 //dbRoutes.addDG(_module,version,rpc,mode,file_buf,req,res);
150 //dbRoutes.listSLA(req,res, resultObj);
154 logger.debug('sax error:'+ex);
159 {code:'danger', msg:'There was an error uploading the file, please try again.'};
160 dbRoutes.listSLA(req,res, resultObj);
166 {code:'danger', msg:'There was an error uploading the file, please try again.'};
167 dbRoutes.listSLA(req,res, resultObj);
172 module.exports = router;