var express = require('express');
var router = express.Router();
var exec = require('child_process').exec;
var util = require('util');
var fs = require('fs');
var dbRoutes = require('./dbRoutes');
var csp = require('./csp');
var bodyParser = require('body-parser');
var sax = require('sax'),strict=true,parser = sax.parser(strict);
var async = require('async');


// GET
router.get('/getParameters', csp.checkAuth, dbRoutes.checkDB, function(req,res) {
    dbRoutes.getParameters(req,res, {code:'', msg:''}, req.session.loggedInAdmin);
});
router.get('/deleteParameter', csp.checkAuth, dbRoutes.checkDB, function(req,res) {

    var privilegeObj = req.session.loggedInAdmin;
    var tasks = [];
    tasks.push(function(callback) {
        dbRoutes.deleteParameter(req,res,callback);
    });
    async.series(tasks, function(err,result){
        var msgArray = new Array();
        if(err){
            msgArray.push(err);
            dbRoutes.getParameters(req,res,{code:'failure', msg:msgArray},privilegeObj);
            return;
        }
        else {
            msgArray.push('Row successfully deleted from PARAMETERS table.');
            dbRoutes.getParameters(req,res,{code:'success', msg:msgArray},privilegeObj);
            return;
        }
    });
});


// POST
router.post('/addParameter', csp.checkAuth, dbRoutes.checkDB, function(req,res){

    var privilegeObj = req.session.loggedInAdmin;
    var tasks = [];
    tasks.push( function(callback) { dbRoutes.addParameter(req,res,callback); } );
    async.series(tasks, function(err,result){
        var msgArray = new Array();
        if(err){
            msgArray.push(err);
            dbRoutes.getParameters(req,res,{code:'failure', msg:msgArray},privilegeObj);
            return;
        }
        else {
            msgArray.push('Successfully updated PARAMETERS.');
            dbRoutes.getParameters(req,res,{code:'success', msg:msgArray},privilegeObj);
            return;
        }
    });
});

// gamma - updateAicSite
router.post('/updateParameter', csp.checkAuth, dbRoutes.checkDB, function(req,res){

    var privilegeObj = req.session.loggedInAdmin;
    var tasks = [];
    tasks.push( function(callback) { dbRoutes.updateParameter(req,res,callback); } );
    async.series(tasks, function(err,result){
        var msgArray = new Array();
        if(err){
            msgArray.push(err);
            dbRoutes.getParameters(req,res,{code:'success', msg:msgArray},privilegeObj);
            return;
        }
        else {
            msgArray.push('Successfully updated PARAMETERS.');
            dbRoutes.getParameters(req,res,{code:'success', msg:msgArray},privilegeObj);
            return;
        }
    });
});


module.exports = router;