const bodyParser = require(`body-parser`); const multer = require("multer"); const fs = require('fs'); const Actions = { 'metadata': require(`./actions/metadata`), } const FileCheckerAPI = class API { #paths = { "analyze": ["/api/fileanalyse"] } // Constructor for the API class. constructor(INSTANCE) { this[`instance`] = INSTANCE; const setConfig = () => { // Set up body-parser and multer. this[`instance`][`use`](bodyParser[`json`]()); this[`instance`][`use`](bodyParser[`urlencoded`]({ extended: true })); const upload = multer({ dest: 'uploads/' }); this[`instance`][`use`](upload.single('upfile')); } setConfig(); this.initRoutes(); }; // Set up the routes for the API. initRoutes() { this.#paths[`analyze`].forEach((PATH) => { [``, `.jsp`, `.php`, `.asp`, `.html`].forEach((SUFFIX) => { this[`instance`][`post`](PATH + SUFFIX, Actions.metadata.analyze); }); }); } } module.exports = FileCheckerAPI;