const execQuery = require('../connector'); const express = require('express'); const router = express.Router(); const fileUtils = require('../utils/fileUtils'); const formUtils = require('../utils/formUtils'); const formidable = require("formidable"); const routes = function () { router.get('/list', (req, res) => { execQuery('SELECT * FROM listcourses;', [], req, res); }); router.get('/get/:id', (req, res) => { const id = req.params.id; execQuery('SELECT * FROM courses WHERE id = ?;', [id], req, res); }); router.post('/create', (req, res) => { let body = new formidable.IncomingForm(); body.maxFileSize = 1024 * 1024 * 1024; body.parse(req, function (err, fields, files) { const pdf = files.pdf; const form = formUtils.normalizarFormulario(fields); const query = 'INSERT INTO courses (description, enabled, duration, ext) VALUES (?, ?, ?, ?);'; execQuery( query, [form.description, form.enabled, form.duration, ".pdf"], req, res, async (results, callback) => { const courseId = results["insertId"]; if (pdf && pdf.length > 0) { await fileUtils.salvarPDF(pdf[0], "course_" + courseId); } callback(results); } ); }); }); router.post('/update', (req, res) => { let body = new formidable.IncomingForm(); body.maxFileSize = 1024 * 1024 * 1024; body.parse(req, function (err, fields, files) { const pdf = files.pdf; const form = formUtils.normalizarFormulario(fields); const query = 'UPDATE courses SET description = ?, enabled = ?, duration = ? WHERE id = ?;'; execQuery( query, [form.description, form.enabled, form.duration, form.id], req, res, async (results, callback) => { const courseId = form.id; if (pdf && pdf.length > 0) { await fileUtils.salvarPDF(pdf[0], "course_" + courseId); } callback(results); } ); }); }); router.delete('/delete/:id', (req, res) => { const id = req.params.id; execQuery('DELETE FROM courses WHERE id = ?;', [id], req, res, async (results, callback) => { const diretorioParaExcluir = './pdfs/course_' + id.toString() + ".pdf"; await fileUtils.excluirArquivo(diretorioParaExcluir); callback(results); }); }); return router; } module.exports = routes;