UNPKG

mysql-restful

Version:
162 lines (154 loc) 5.83 kB
/** * RAPID CRUD controller * * @description :: * @help :: */ var dbs = require('./dbcon.js'); var utils = require('./fgen.js') var rdb = require('./rapidpg.js') var fs = require('fs'); var cto = require('./myst.js'); var intc = require('./intcommands.js'); var ipr = require('./ipallow.js'); module.exports = { /** * CommentController.create() */ command: function (req,res,cfg) { if(!ipr.checkip(req,process.rapidcfg.ipallow)){return res.status(401).send({message:"error",error:"access allowed by IP"})} var ck = utils.checkadmpwd(req,process.rapidcfg.suser,process.rapidcfg.spwd); if (ck.message != "OK"){return res.send({error:ck.error})}; if (!process.rapidcfg.mdb && req.params["0"] !== 'reload'){ return res.status(404).send({error:"system not configured"}) }; var fastr = req.params["0"]; console.log(fastr); if (typeof intc[fastr]=='function'){intc[fastr](req,res,cfg)} else { res.status(404).send({error:"service not implemented",service:fastr})} }, login: function (req,res) { if(!ipr.checkip(req,process.rapidcfg.ipallow)){return res.status(401).send({message:"error",error:"access allowed by IP"})} res.send(utils.checkadmpwd(req,process.rapidcfg.suser,process.rapidcfg.spwd)); }, info: function (req,res){ if(!ipr.checkip(req,process.rapidcfg.ipallow)){return res.status(401).send({message:"error",error:"access allowed by IP"})} var action = 1; if (process.rapidcfg.suser == 'noset'){action=0} res.send({id:process.rapidcfg.rapidid,isnew:process.rapidcfg.isnew,action:action}); }, pset: function (req,res){ if(!ipr.checkip(req,process.rapidcfg.ipallow)){return res.status(401).send({message:"error",error:"access allowed by IP"})} var newcfg = {"userapid":true,"host":"nohost","port":5433,"user":"nouser","password":"nopass","rapiddb":"rcfg", "rapidid":"default","suser":"noset","spwd":"noset","isnew":true}; if(!req.headers.authorization){ if(!process.rapidcfg.isnew){return res.status(404).send({error:"system credits can not be changed"})}; } else { var ck = utils.checkadmpwd(req,process.rapidcfg.suser,process.rapidcfg.spwd); if (ck.message != "OK"){return res.send({error:ck.error,auth:"failed"})}; newcfg.host = process.rapidcfg.host; newcfg.user = process.rapidcfg.user; newcfg.password = process.rapidcfg.password; newcfg.isnew = process.rapidcfg.isnew; } if(!req.body.usr){return res.status(404).send({error:"usr is required"})}; if(!req.body.pwd){return res.status(404).send({error:"pwd is required"})}; newcfg.suser = req.body.usr.toLowerCase(); newcfg.spwd = req.body.pwd; if (process.rapidcfg.etk){newcfg.etk = process.rapidcfg.etk} fs.writeFileSync(process.env.mpath+'config.json', JSON.stringify(newcfg,null,2)); process.rapidcfg.suser = req.body.usr.toLowerCase();; process.rapidcfg.spwd = req.body.pwd; return res.send({id:process.rapidcfg.rapidid,isnew:process.rapidcfg.isnew,action:action=1}); }, setup: function (req,res,cfg){ if(!ipr.checkip(req,process.rapidcfg.ipallow)){return res.status(401).send({message:"error",error:"access allowed by IP"})} function cb(err,data){ client.end(); delete client; if (err){ var errmsg = "" console.log(err); if (err.routine){ if (err.routine == 'auth_failed'){ errmsg ="Invalid password or username"; }; if (err.routine == 'InitPostgres'){ errmsg ="Invalid database name"; }; //return res.send({error:"connection error"}) } else { if (err.errno == 'ECONNREFUSED'){ errmsg ="Invalid domain address or port"; }; if (err.errno == 'ENOTFOUND'){ errmsg ="Invalid domain address or port"; }; } return res.send({error:"connection error",errmsg:errmsg}) }; var rsp = req.body; rsp.result = "OK" return res.send(rsp); }; var ck = utils.checkadmpwd(req,process.rapidcfg.suser,process.rapidcfg.spwd); if (ck.message != "OK"){return res.send({error:ck.error})} console.log(req.body); if (!req.body){return res.send({error:"Body required"})}; if (!req.body.domain){return res.send({error:"domain required"})}; if (!req.body.port){return res.send({error:"port required"})}; if (!req.body.db){return res.send({error:"db required"})}; if (!req.body.usern){return res.send({error:"usern required"})}; if (!req.body.pwd){return res.send({error:"pwd required"})}; var con = {}; con.user = req.body.usern; con.password = req.body.pwd; con.host = req.body.domain; con.port = req.body.port; con.database = req.body.db; if (!req.body.action){ var client = dbs.getclient(con); client.connect(cb); } else { function done(){return res.send({result:"OK",request:req.body})}; var newcfg = { userapid: true, host: req.body.domain, port: req.body.port, user: req.body.usern, password: req.body.pwd, rapiddb: "rcfg", rapidid: "default", suser:process.rapidcfg.suser, spwd:process.rapidcfg.spwd, isnew:false, aip:process.rapidcfg.aip, env:process.rapidcfg.env }; if (process.rapidcfg.etk){newcfg.etk = process.rapidcfg.etk} fs.writeFileSync(process.env.mpath+'config.json', JSON.stringify(newcfg,null,2)); process.rapidcfg = newcfg; //console.log(cfg); if (req.body.action == 1){cfg.loadmdb(process.rapidcfg,done)}; if (req.body.action == 2){ var cdata = req.body.db; var cfgdata = "rcfg"; var copt = { user:newcfg.user, password:newcfg.password, address:newcfg.host, port:newcfg.port } function rcfgfin (err,data){ console.log(err); console.log(data); if (err){return res.send({result:"error",error:err})}; if (data){ cfg.loadmdb(process.rapidcfg,done); }; }; cto.init(copt,cdata,cfgdata,rcfgfin); }; }; } };