%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;