%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/routes/
Upload File :
Create Path :
Current File : /home/opti/workflow/src/routes/process.js

var express = require('express');
var router = express.Router();
var secured = require('../middleware/login');
var con = require('../../config');


router.get('/', secured, function (req, res, next) {
    var user = req.user;
    user.password = null;
    console.log(user)
    res.render('process/create', { title: 'Create New Process', user: user, script: "processAdd" });
});


router.post('/process', function (req, res, next) {


    obj = req.body;

    for (let key in obj) {
        //removing whitspaces
        obj[key] = key + "_" + obj[key].trim().split(" ").join("_");

    }

    var tableName = 'process' + obj['name'];

    //create Db table dinamically

    var sql = `CREATE TABLE ${tableName} (id INT AUTO_INCREMENT PRIMARY KEY`;
    for (var key in obj) {

        //creating a db query
        if (key.match(/\bname1*$/)) {
            sql += `, ${obj[key]} VARCHAR(90)`;
        } else if (key.match(/\btext1*$/)) {
            sql += `, ${obj[key]} VARCHAR(100)`;
        } else if (key.match(/\bemail1*$/)) {
            sql += `, ${obj[key]} VARCHAR(80)`;
        } else if (key.match(/\btextArea1*$/)) {
            sql += `, ${obj[key]} TEXT`;
        } else if (key.match(/\bstaff1*$/)) {
            sql += `, ${obj[key]} INT`
        } else if (key.match(/\bunit1*$/)) {
            sql += `, ${obj[key]} INT`
        } else if (key.match(/\bdepartment1*$/)) {
            sql += `, ${obj[key]} INT`
        }
    }


    sql += `, user_id INT )`;

    console.log(sql);
    con.query(sql, function (err, result) {
        if (err) {
            console.log(err);
            return res.json("Error creating table");
        }
        console.log("Table Created Successfuly");
        sql2 = `INSERT INTO saved_processes (table_name) VALUES ('${tableName}')`;
        con.query(sql2, function (err, result) {
            if (err) throw err;
            res.json({ message: "Table Created Successfuly" });
        })
    });

});

router.get('/processes', function (req, res) {
    //get table associated with process from DB
    var sql = `SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='${process.env.DB_NAME}' AND TABLE_NAME LIKE 'process%'`;

    con.query(sql, function (err, result) {
        if (err) throw err;
        console.log(result)
        res.json(result)
    })
})

router.get('/process/columns/:table', function (req, res) {
    let table = req.params.table;
    //get all columns from a table
    var sql = `SHOW COLUMNS FROM ${table}`;

    con.query(sql, function (err, result) {
        if (err) throw err;
        res.json(result);
    })
})

router.post('/process/save/:table', secured, function (req, res) {

    let obj = req.body;

    let table = req.params.table;

    console.log(req.user);
    var sql = `INSERT INTO ${table} (`;
    for (let key in obj) {

        sql += `${key},`;

    }

    sql += `user_id ) VALUES (`;

    for (let key in obj) {

        sql += `'${obj[key]}',`;

    }
    sql += `${req.user.id} )`;

    console.log(sql);


    con.query(sql, function (err, result) {
        if (err) {
            console.log(err);
            res.json("Error in Recording");
        }
        console.log("Sumited Sucessfully");
        let sql2 = `INSERT INTO notifications (sender_id, receiver_id, notification_type, notifiable_id)
        VALUES (1, 1, '${table}', '${result.insertId}')`;

        con.query(sql2, function (err, result) {
            if (err) {
                console.log(err);
            }
            res.json({ message: "Recorded and notification sent" });
        })
    });


});


module.exports = router;

Zerion Mini Shell 1.0