%PDF- %PDF-
| Direktori : /home/opti/workflow/src/routes/ |
| 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;