UNPKG

enhancer-data-bridge

Version:

A bridge between Enhancer Clould and user business datasource

94 lines (87 loc) 2.29 kB
exports.before = function(req, res, next) { var dbconfig; try { dbconfig = JSON.parse(req.body.dbconfig); } catch(e) { return res.jsonp({ success: false, message: 'Invalid dbconfig.' }); } req.dbConfig = dbconfig; var dbtype = dbconfig.databaseType || 'mysql'; req.dbProxy = require('../database-proxy/' + dbtype); next(); }; exports.testConnection = function(req, res, next) { req.dbProxy.testConnection(req.dbConfig, function(err, result) { if (err) { return res.jsonp({ success: false, message: err.message }); } res.jsonp({ success: result === true, message: result }) }); }; exports.testSQL = function(req, res, next) { var params; var sql; try { params = JSON.parse(req.body.params || '[]'); sql = req.body.sql; } catch(e) { return res.jsonp({ success: false, message: 'Invalid parameters.' }); } if (!sql) { return res.jsonp({ success: false, message: 'No sql.' }); } sql = sql.replace(/\;\s*$/, ''); req.dbProxy.testSql(req.dbConfig, sql, params, function(err, result) { if (err) { return res.jsonp({ success: false, message: err.message }) } res.jsonp(result); }); }; exports.getTableNames = function(req, res, next) { req.dbProxy.getTableNames(req.dbConfig, function(err, tableNames) { if (err) { return res.jsonp({ success: false, message: err.message }); } res.jsonp({ success: true, tableNames: tableNames }); }); }; exports.getTableColumns = function(req, res, next) { var tableName = req.body.tableName; req.dbProxy.getTableColumns(req.dbConfig, tableName, function(err, columns) { if (err) { return res.jsonp({ success: false, message: err.message }); } res.jsonp({ success: true, columns: columns }); }); };