UNPKG

itmsg_automation

Version:

This is RESTful API web server with Ansible. You can execute Ansible ADHOC, Playbook using this API server. If you want to give me a feedback, Please leave a comment on 'Github Repository > Discussions'!

141 lines (119 loc) 4.39 kB
const express = require('express'); const router = express.Router(); const db = require('../db/db.js'); const addslashes = require('../db/addslashes.js'); const adhocBuilder = require('../dto/adhocBuilder') const sql = require('../db/sql/adhocSql.js') // Post adhoc template (Insert) router.post('/', function (req, res, next) { const body = req.body; const dto = new adhocBuilder().setName(addslashes(body.name)) .setContent(addslashes(body.content)) .setIid(addslashes(body.iid)) .setIname(addslashes(body.iname)) .setCname(addslashes(body.cname)) .setModule( addslashes(body.module)) .setVerb(addslashes(body.verb)) .setArg(body.argument ? addslashes(req.body.argument) : "") .setForks(body.forks ? addslashes(body.forks) : 1) .setLimits(body.limits ? addslashes(body.limits) : "") .setVariables(body.variables ? addslashes(body.variables) : "---") .setUse_yn(body.use_yn ? addslashes(body.use_yn) : "Y") .build(); db.query(sql.post(), [dto.name, dto.content, dto.iid , dto.iname, dto.cname, dto.module , dto.arg, dto.forks, dto.limits , dto.verb, dto.variables, dto.use_yn], (err) => { if (err) next(err); return res.json(db.resultMsg('a001', req.body)); }); }); /* PUT adhoc template (Update) */ router.put('/:seq', function (req, res, next) { const seq = req.params.seq ? addslashes(req.params.seq) : ""; const body = req.body; const dto = new adhocBuilder().setName(addslashes(body.name)) .setContent(addslashes(body.content)) .setIid(addslashes(body.iid)) .setIname(addslashes(body.iname)) .setCname(addslashes(body.cname)) .setModule( addslashes(body.module)) .setVerb(addslashes(body.verb)) .setArg(body.argument ? addslashes(req.body.argument) : "") .setForks(body.forks ? addslashes(body.forks) : 1) .setLimits(body.limits ? addslashes(body.limits) : "") .setVariables(body.variables ? addslashes(body.variables) : "---") .setUse_yn(body.use_yn ? addslashes(body.use_yn) : "Y") .build(); db.query(sql.update(), [dto.name, dto.content, dto.iid , dto.iname, dto.cname, dto.module , dto.arg, dto.forks, dto.limits , dto.verb, dto.variables, dto.use_yn, seq], (err, rows) => { if (err) next(err); return res.json(db.resultMsg('a001', req.body)); }); }); /* DELETE adhoc template (delete) */ router.delete('/:seq', function (req, res, next) { let seq = req.params.seq ? addslashes(req.params.seq) : ""; db.query(sql.delete(), [seq], (err) => { if (err) { next(err); } return res.json(db.resultMsg('a001', req.body)); }); }); /* GET adhoc template (SELECT ONE) */ router.get('/:seq', (req, res, next) => { let seq = req.params.seq ? addslashes(req.params.seq) : ""; let code = "a001"; db.query(sql.getOneRow(), [seq], (err, rows) => { if (err) next(err); if (rows.rowCount === 0 ) code = "a003" return res.json(db.resultMsg(code, rows.rows)); }); }); /* GET adhoc template listing. */ router.get('/', function (req, res, next) { let code = "a001"; let data = {}; let page = req.query.page ? addslashes(req.query.page) : ""; let pageSize = req.query.pageSize ? addslashes(req.query.pageSize) : ""; const name = req.query.name ? addslashes(req.query.name) : ""; if (page == "" || page < 1) { page = 1; } if (pageSize == "" || pageSize < 1) { pageSize = 15; } const start = (page - 1) * pageSize; db.query(sql.getList(name), [pageSize, start], (err, rows) => { if (err) next(err); if (rows.rowCount === 0) code ="a003" totalCount(name).then(function (result) { data['rowCount'] = rows.rowCount; data['totalCount'] = result; data['page'] = page; data['pageSize'] = pageSize; data['list'] = rows.rows; res.json(db.resultMsg(code, data)); }).catch(function (err) { if (err) { console.error(err); next(err); } }); }); }); function totalCount(name) { return new Promise(function (resolve, reject) { db.query(sql.totalCount(name), [], (err, rows) => { if (err) { return reject(err); } resolve(rows.rows[0].total); }); }); } module.exports = router;