ZoeApi/controllers/qrController.js

189 lines
4.7 KiB
JavaScript

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;