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 bodyParser = require('body-parser');
9 var sax = require('sax'),strict=true,parser = sax.parser(strict);
11 // SVC_LOGIC table columns
12 var _module=''; // cannot use module its a reserved word
19 //router.use(bodyParser());
20 router.use(bodyParser.urlencoded({
26 router.get('/listUsers', csp.checkAuth, function(req,res) {
27 dbRoutes.listUsers(req,res, {user:req.session.loggedInAdmin,code:'', msg:''} );
29 router.get('/deleteUser', csp.checkAuth, dbRoutes.checkDB, function(req,res) {
30 dbRoutes.deleteUser(req,res, {code:'', msg:''} );
33 //router.get('/activate', csp.checkAuth, dbRoutes.checkDB, function(req,res){
35 //var _module = req.query.module;
36 //var rpc = req.query.rpc;
37 //var version = req.query.version;
38 //var mode = req.query.mode;
40 //dbRoutes.activate(req,res,_module,rpc,version,mode);
43 //router.get('/deactivate', csp.checkAuth, dbRoutes.checkDB, 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.deactivate(req,res,_module,rpc,version,mode);
53 //router.get('/deleteDG', csp.checkAuth, dbRoutes.checkDB, 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.deleteDG(req,res,_module,rpc,version,mode);
64 parser.onerror = function (e) {
65 logger.debug('onerror');
68 parser.ontext = function (t) {
69 // got some text. t is the string of text.
70 logger.debug('ontext:'+t);
72 parser.onopentag = function (node) {
73 // opened a tag. node has "name" and "attributes"
74 if ( node.name == 'service-logic' )
76 _module = node.attributes.module;
77 version = node.attributes.version;
79 if ( node.name == 'method' )
81 rpc = node.attributes.rpc;
82 mode = node.attributes.mode;
85 parser.onattribute = function (attr) {
86 // an attribute. attr has "name" and "value"
87 logger.debug('onattribute:'+attr);
89 parser.onend = function () {
90 // parser stream is done, and ready to have more stuff written to it.
91 logger.debug('onend:');
97 router.post('/updateUser', csp.checkAuth, dbRoutes.checkDB, function(req,res,next){
98 dbRoutes.updateUser(req,res,{code:'',msg:''});
100 router.post('/addUser', csp.checkAuth, dbRoutes.checkDB, function(req,res) {
101 dbRoutes.addUser(req,res, {code:'', msg:''} );
104 //router.post('/upload', csp.checkAuth, dbRoutes.checkDB, function(req, res, next){
107 logger.debug("upload");
108 if(req.files.filename){
109 if (req.files.filename.size == 0) {
111 {code:'danger', msg:'There was an error uploading the file, please try again.'};
112 dbRoutes.listSLA(req,res, resultObj);
114 fs.exists(req.files.filename.path, function(exists) {
116 resultObj = {code:'success', msg:'File sucessfully uploaded.'};
120 var file_buf = fs.readFileSync(req.files.filename.path, "utf8");
121 logger.debug('file '+req.files.filename);
124 // call Dan's svclogic shell script from here
125 var commandToExec = process.cwd()
126 + "/shell/svclogic.sh load "
127 + req.files.filename.path + " "
129 + "/config/svclogic.properties";
131 logger.debug("commandToExec:" + commandToExec);
132 child = exec(commandToExec ,function (error,stdout,stderr){
134 logger.info("error:" + error);
137 logger.info("stderr:" + stderr);
140 logger.info("OUTPUT:" + stdout);
141 dbRoutes.listSLA(req,res, resultObj);
144 // remove the grave accents, the sax parser does not like them
145 //parser.write(file_buf.replace(/\`/g,'').toString('utf8')).close();
146 //dbRoutes.addDG(_module,version,rpc,mode,file_buf,req,res);
147 //dbRoutes.listSLA(req,res, resultObj);
151 logger.debug('sax error:'+ex);
156 {code:'danger', msg:'There was an error uploading the file, please try again.'};
157 dbRoutes.listSLA(req,res, resultObj);
163 {code:'danger', msg:'There was an error uploading the file, please try again.'};
164 dbRoutes.listSLA(req,res, resultObj);
169 module.exports = router;