diff --git a/app.js b/app.js index c27ba06..3256d28 100644 --- a/app.js +++ b/app.js @@ -15,6 +15,7 @@ const listRtr = require('./src/routes/list.routes'); // /list endpoints const ldbRtr = require('./src/routes/ldb.routes'); // /ldb endpoints const kubeRtr = require('./src/routes/kube.routes'); // /kube endpoints const findRtr = require('./src/routes/find.routes'); // /find endpoints +const issueRtr = require('./src/routes/issue.routes') // /issue endpoints const initDb = require('./src/utils/dbinit.utils'); // DB Init Utility // Set Server Configurations @@ -53,6 +54,7 @@ app.use('/api/v1/list', listRtr); app.use('/api/v1/ldb', ldbRtr); app.use('/api/v1/kube', kubeRtr); app.use('/api/v1/find', findRtr); +app.use('./api/v1/issue', issueRtr); // Start Express app.listen(srvPort, srvListen, (error) =>{ diff --git a/src/configs/domains.configs.js b/src/configs/domains.configs.js new file mode 100644 index 0000000..7c7f14b --- /dev/null +++ b/src/configs/domains.configs.js @@ -0,0 +1,10 @@ +module.exports = valid + +const valid = [ + "owlboard.co.uk", + "fjla.uk", + "gwr.com", + "swrailway.com", + "firstrail.com", + "networkrail.co.uk" +] \ No newline at end of file diff --git a/src/controllers/issue.controllers.js b/src/controllers/issue.controllers.js new file mode 100644 index 0000000..b8c0431 --- /dev/null +++ b/src/controllers/issue.controllers.js @@ -0,0 +1,14 @@ +const issue = require('../services/issue.services'); + +async function post(req, res, next){ + try { + res.json(await issue.processor(req.body)) + } catch (err) { + console.error(`Controller Error`, err.message); + next(err); + } +} + +module.exports = { + post +} \ No newline at end of file diff --git a/src/routes/issue.routes.js b/src/routes/issue.routes.js new file mode 100644 index 0000000..24d6375 --- /dev/null +++ b/src/routes/issue.routes.js @@ -0,0 +1,7 @@ +const express = require('express'); +const router = express.Router(); +const issueController = require('../controllers/issue.controllers'); + +router.post('/issue', issueController.post); + +module.exports = router; \ No newline at end of file diff --git a/src/services/issue.services.js b/src/services/issue.services.js index 92baf7f..f9bd56e 100644 --- a/src/services/issue.services.js +++ b/src/services/issue.services.js @@ -1,19 +1,28 @@ const axios = require('axios') +const clean = require('../utils/sanitizer.utils') + +async function processor(data) { + let out = {} + out.title = await cleanData(data.title) + out.body = await cleanData(data.body) + sendToGitea(out); +} + +async function cleanData(data) { + return clean.cleanApiEndpointTxt(data) +} async function sendToGitea(body) { let key = process.env.OWL_GIT_ISSUEBOT let url = process.env.OWL_GIT_APIENDPOINT - let options = { + let opts = { headers: { Authorization: key - }, - data: body, - withCredantials: true + } } - - await axios.post(url, options) + await axios.post(url, body, opts) } module.exports = { - sendToGitea + processor } \ No newline at end of file