require('../connections/mysql-server'); require('../helpers/CheckToken'); require('../helpers/config'); const express = require('express'); const router = express.Router(); const bodyParser = require('body-parser'); router.use(bodyParser.urlencoded({ limit: '10mb', extended: true } )); router.use(bodyParser.json({ limit: '10mb', extended: true })); var routes = function () { router.get('/listLotes', verifyJWT, (req, res) => { execSQLQuery(` SELECT * FROM qrlotes`, res, req.originalUrl ); }) router.get('/listQRcodes', verifyJWT, (req, res) => { execSQLQuery(` SELECT * FROM qrcodes`, res, req.originalUrl ); }) router.get('/listLotesByID/:id', verifyJWT, (req, res) => { var id = req.params.id; execSQLQuery(` SELECT * FROM qrlotes WHERE idqrlotes = ${id}`, res, req.originalUrl ); }) router.get('/listQRcodesByAny/:field/:value', verifyJWT, (req, res) => { var field = req.params.field; var value = req.params.value; execSQLQuery(` SELECT * FROM qrcodes WHERE ${field} = '${value}'`, res, req.originalUrl ); }) router.post('/insertLotes', verifyJWT, (req, res) => { const qtdepack = req.body.qtdepack; const date = req.body.date; const description = req.body.description; execSQLQuery(`INSERT INTO qrlotes(qtdepack, date, description) VALUES (${qtdepack},'${date}', "${description}");`, res, req.originalUrl ); }) router.post('/insertQRcodes', verifyJWT, (req, res) => { const idqrlotes = req.body.idqrlotes; const idusers = req.body.idusers; const key = req.body.key; const ordem = req.body.ordem; execSQLQuery(` INSERT INTO qrcodes(idqrlotes, idusers, _key, ordem) VALUES (${idqrlotes},${idusers}, '${key}', ${ordem});`, res, req.originalUrl ); }) router.patch('/updateLotes', verifyJWT, (req, res) => { const idqrlotes = req.body.idqrlotes; const qtdepack = req.body.qtdepack; const date = req.body.date; execSQLQuery(`UPDATE qrlotes SET qtdepack = ${qtdepack}, date = '${date}' WHERE idqrlotes = ${idqrlotes};`, res, req.originalUrl ); }) router.patch('/updateQRcodes', verifyJWT, (req, res) => { const idqrcodes = req.body.idqrcodes; const idqrlotes = req.body.idqrlotes; const idusers = req.body.idusers; const key = req.body.key; const ordem = req.body.ordem; execSQLQuery(` UPDATE qrcodes SET idqrlotes = ${idqrlotes}, idusers = ${idusers}, _key = ${key}, ordem = ${ordem} WHERE idqrcodes = ${idqrcodes};`, res, req.originalUrl ); }); router.post('/generateTxt', verifyJWT, (req, res) => { var idqrlotes = req.body.idqrlotes; var name = req.body.name; var content = req.body.content; var fs = require('fs'); var path = Variables('src_media') + "qrlotes/" + idqrlotes; fs.mkdirSync(path); fs.writeFile(path + "/" + name + ".txt", content, function (erro) { if (erro) { throw erro; } else { res.send(true); } }); }); router.post('/save', verifyJWT, (req, res) => { var base64ToImage = require('base64-to-image'); var fs = require('fs'); var img64 = req.body.src; var idqrlotes = req.body.idqrlotes; var numb = req.body.itens; var Name = 'qr_' + idqrlotes + '_' + numb; var Obj = {'fileName': Name, 'type':'jpg'}; var path = Variables('src_media') + "qrlotes/" + idqrlotes; if(!fs.existsSync(path)) { fs.mkdirSync(path); } path += '/'; if(base64ToImage(img64,path,Obj)) { res.send(true) } else { res.send(false); } //res.send("images uploaded with success!"); }); router.get('/downloadPack/:idqrlotes', verifyJWT, (req, res) => { var idqrlotes = req.params.idqrlotes; var path = Variables('src_media') + "qrlotes/" + idqrlotes; var fs = require("fs"); if(!fs.existsSync(path + "/qrlote_" + idqrlotes + '.zip')) { require('all-unpacker').pack(path + "/qrlote_" + idqrlotes + '.zip', { targetDir: path + "/*", }, function(err, files, text) { if (err) return console.error(err); if (files) console.log('files', files); if (text) { console.log('text', text); console.log("compactado"); res.send(true) ; }; }); } else { res.send(true); } }); return router; }; module.exports = routes;