const libs = `${process.cwd()}/libs`;
const log = require(`${libs}/log`)(module);
const xml = require('js2xmlparser');
const csv = require('csv-express');

 // Custom generic middleware used respond requests.
 // The function reads the req.query.format param and respond in json, xml or csv
function response(value) {
    return (req, res, next) => {
        log.debug(req.query.format);
        if (req.query.format === 'csv') {
            res.attachment(`${value}.csv`);
            res.csv(req.result);
        } else if (req.query.format === 'xml') {
            res.send(xml.parse('result', { [value]: req.result }));
        } else {
            res.json({ result: req.result });
        }
    };
}

module.exports = response;