From 0e149ff3ce6f07bdb0252791b16da06f0bc779e5 Mon Sep 17 00:00:00 2001 From: Mhykol Date: Mon, 24 Jun 2024 08:10:46 -0400 Subject: Added optional post request to a specific route --- app.js | 54 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/app.js b/app.js index c18ecec..b0cb7a0 100644 --- a/app.js +++ b/app.js @@ -7,6 +7,8 @@ const cookieParser = require('cookie-parser') const createDOMPurify = require('dompurify') const { JSDOM } = require('jsdom') const Controller = require('./source/controller') +const newsletter = require('./source/newsletter')() +// ! Finish newsletter const readfile = require('./source/readfile') const session = require('./source/session') const logger = require('./source/logger')() @@ -114,36 +116,46 @@ class App { if (output.has(this.path.string)) { try { output.get(this.path.string).then(output => { - const object = { - js: output.assets.js, - css: output.assets.css - } - - this.readfile.Create(output.html).then(output => { + if (output.hasOwnProperty('post') ? output.post : false) { const DOMPurify = createDOMPurify(new JSDOM('').window) - const clean = DOMPurify.sanitize(output.layouts.header + output.layouts.data + output.layouts.footer, { - ADD_TAGS: ['iframe'], ADD_ATTR: ['allow', 'allowfullscreen', 'frameborder', 'scrolling'] + const clean = DOMPurify.sanitize(output.html) + res.send(JSON.stringify({post: output.post, html: clean, css: output.css, js: output.js})) + } else { + const object = { + js: output.assets.js, + css: output.assets.css + } + this.readfile.Create(output.html).then(output => { + const DOMPurify = createDOMPurify(new JSDOM('').window) + const clean = DOMPurify.sanitize(output.layouts.header + output.layouts.data + output.layouts.footer, { + ADD_TAGS: ['iframe'], ADD_ATTR: ['allow', 'allowfullscreen', 'frameborder', 'scrolling'] + }) + res.send(JSON.stringify({html: clean, css: object.css, js: object.js})) }) - res.send(JSON.stringify({title: object.title, html: clean, css: object.css, js: object.js})) - }) + } }) } catch { const object = {} - try { - object.js = output.assets.js - object.css = output.assets.css - } catch (err) { - object.js = [] - object.css = [] + + if (output.get(this.path.string).hasOwnProperty('assets')) { + this.assets = output.get(this.path.string).assets + object['js'] = this.assets.hasOwnProperty('js') ? this.assets.js : [] + object['css'] = this.assets.hasOwnProperty('css') ? this.assets.css : [] } - this.readfile.Create(output.get(this.path.string).html).then(output => { + if (output.hasOwnProperty('post') ? output.post : false) { const DOMPurify = createDOMPurify(new JSDOM('').window) - const clean = DOMPurify.sanitize(output.layouts.header + output.layouts.data + output.layouts.footer, { - ADD_TAGS: ['iframe'], ADD_ATTR: ['allow', 'allowfullscreen', 'frameborder', 'scrolling'] + const clean = DOMPurify.sanitize(output.html) + res.send(JSON.stringify({post: output.post, html: clean, css: output.css, js: output.js})) + } else { + this.readfile.Create(output.get(this.path.string).html).then(output => { + const DOMPurify = createDOMPurify(new JSDOM('').window) + const clean = DOMPurify.sanitize(output.layouts.header + output.layouts.data + output.layouts.footer, { + ADD_TAGS: ['iframe'], ADD_ATTR: ['allow', 'allowfullscreen', 'frameborder', 'scrolling'] + }) + res.send(JSON.stringify({html: clean, css: object.css, js: object.js})) }) - res.send(JSON.stringify({html: clean, css: object.css, js: object.js})) - }) + } } } else { res.send('Not Found') -- cgit v1.2.3-70-g09d2