355 lines
15 KiB
JavaScript
355 lines
15 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const formidable = require('formidable');
|
|
|
|
var routes = function () {
|
|
|
|
router.get('/getSistemas', function (req, res) {
|
|
const sqlQuery = `SELECT * FROM sistemas order by nome asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getSistemasEn', function (req, res) {
|
|
const sqlQuery = `SELECT * FROM sistemas WHERE habilitado = 1 order by nome asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getSistemaByID/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `SELECT * FROM sistemas WHERE idsistemas = ${idsistemas};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getSistemaByIDLista/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `SELECT
|
|
s.*,
|
|
p.descricao as plataforma,
|
|
t.descricao as tiposdesistema,
|
|
l.descricao as tiposlicenca
|
|
FROM sistemas s
|
|
INNER JOIN plataformas p ON s.idplataformas = p.idplataformas
|
|
INNER JOIN tiposdesistema t ON t.idtiposdesistema = s.idtiposdesistema
|
|
INNER JOIN tiposlicenca l ON s.idtiposlicenca = l.idtiposlicenca
|
|
WHERE idsistemas = ${idsistemas}
|
|
order by s.nome asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getSistemaVersao/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `SELECT versaoatual as VersaoAtual, nome_install as NomeInstall FROM sistemas WHERE idsistemas = ${idsistemas};`;
|
|
//ExecuteQuery(sqlQuery, req, res);
|
|
mysqlConnection.query(sqlQuery, [], function (error, results, fields) {
|
|
console.log(`${new Date().toUTCString()} - ${req.originalUrl} ${(error) ? ' 500 error' : ' 200 success'}`);
|
|
res.send(results[0])
|
|
});
|
|
});
|
|
|
|
router.get('/getTiposdesistema', function (req, res) {
|
|
const sqlQuery = `SELECT * FROM tiposdesistema order by descricao asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getTiposdesistemaByID/:idtiposdesistema', function (req, res) {
|
|
const idtiposdesistema = parseInt(req.params.idtiposdesistema);
|
|
const sqlQuery = `SELECT * FROM tiposdesistema WHERE idtiposdesistema = ${idtiposdesistema};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getTiposdelicenca', function (req, res) {
|
|
const sqlQuery = `SELECT * FROM tiposlicenca order by descricao asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getTiposdelicencaByID/:idtiposlicenca', function (req, res) {
|
|
const idtiposlicenca = parseInt(req.params.idtiposlicenca);
|
|
const sqlQuery = `SELECT * FROM tiposlicenca WHERE idtiposlicenca = ${idtiposlicenca};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getPlataformas', function (req, res) {
|
|
const sqlQuery = `SELECT * FROM plataformas order by descricao asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getPlataformaByID/:idplataformas', function (req, res) {
|
|
let idplataformas = parseInt(req.params.idplataformas);
|
|
const sqlQuery = `SELECT * FROM plataformas WHERE idplataformas = ${idplataformas};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getDetalhesByID/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `SELECT * FROM sistemasdetalhes WHERE idsistemas = ${idsistemas} order by ordem asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getDetalhesByIDEn/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `SELECT * FROM sistemasdetalhes WHERE idsistemas = ${idsistemas} AND habilitado = 1 order by ordem asc;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.post('/insertSistemas', function (req, res) {
|
|
const idsistemas = req.body.idsistemas;
|
|
const nome = req.body.nome;
|
|
const descricao = req.body.descricao;
|
|
const versaoatual = req.body.versaoatual;
|
|
const habilitado = req.body.habilitado ? 1 : 0;
|
|
const idtiposdesistema = req.body.idtiposdesistema;
|
|
const idplataformas = req.body.idplataformas;
|
|
const nome_install = req.body.nome_install;
|
|
const notasdeatualizacao = req.body.notasdeatualizacao;
|
|
const idtiposlicenca = req.body.idtiposlicenca;
|
|
const sqlQuery = `INSERT INTO sistemas (nome, descricao, versaoatual, habilitado, downloads, idtiposdesistema, idplataformas, nome_install, notasdeatualizacao, idtiposlicenca)
|
|
VALUES ('${nome}', '${descricao}', '${versaoatual}', ${habilitado}, 0, ${idtiposdesistema}, ${idplataformas}, '${nome_install}', '${notasdeatualizacao}', ${idtiposlicenca});`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.patch('/updateSistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.body.idsistemas);
|
|
const nome = req.body.nome;
|
|
const descricao = req.body.descricao;
|
|
const versaoatual = req.body.versaoatual;
|
|
const habilitado = req.body.habilitado ? 1 : 0;
|
|
const idtiposdesistema = req.body.idtiposdesistema;
|
|
const idplataformas = req.body.idplataformas;
|
|
const nome_install = req.body.nome_install;
|
|
const notasdeatualizacao = req.body.notasdeatualizacao;
|
|
const idtiposlicenca = req.body.idtiposlicenca;
|
|
const sqlQuery = `UPDATE sistemas SET
|
|
nome = '${nome}',
|
|
descricao = '${descricao}',
|
|
versaoatual = '${versaoatual}',
|
|
habilitado = ${habilitado},
|
|
idtiposdesistema = ${idtiposdesistema},
|
|
idplataformas = ${idplataformas},
|
|
nome_install = '${nome_install}',
|
|
notasdeatualizacao = '${notasdeatualizacao}',
|
|
idtiposlicenca = ${idtiposlicenca}
|
|
WHERE idsistemas = ${idsistemas};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.delete('/deleteSistemas/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const sqlQuery = `DELETE FROM sistemas WHERE idsistemas = ${idsistemas};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.delete('/deleteSistemaUsuario/:idsistemas/:idusuarios', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const idusuarios = parseInt(req.params.idusuarios);
|
|
const sqlQuery = `DELETE FROM sistemasusuario WHERE idsistemas = ${idsistemas} AND idusuarios = ${idusuarios};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.patch('/downloadSistema', function (req, res) {
|
|
const idsistemas = parseInt(req.body.idsistemas);
|
|
const sqlQuery = `UPDATE sistemas SET
|
|
downloads = downloads + 1
|
|
WHERE idsistemas = ${idsistemas};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.post('/insertSistemaUsuario', function (req, res) {
|
|
const idsistemas = parseInt(req.body.idsistemas);
|
|
const idusuarios = parseInt(req.body.idusuarios);
|
|
const sqlQuery = `INSERT INTO sistemasusuario (idsistemas, idusuarios, data_download)
|
|
SELECT DISTINCT ${idsistemas} AS idsistemas, ${idusuarios} AS idusuarios, NOW() AS data_download
|
|
FROM sistemasusuario su WHERE (SELECT COUNT(*) qtdDown FROM sistemasusuario WHERE idsistemas = ${idsistemas} AND idusuarios = ${idusuarios}) = 0;`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.post('/copy', (req, res) => {
|
|
let form = new formidable.IncomingForm();
|
|
form.maxFileSize = 600 * 1024 * 1024;
|
|
form.parse(req, function(err,fields,files){
|
|
const fs = require('fs');
|
|
var nome_install = fields.nome;
|
|
var versaoatual = fields.versaoatual;
|
|
var idsistemas = fields.idsistemas;
|
|
var pathArquivo = "";
|
|
var pathIcone = "";
|
|
|
|
try {
|
|
pathArquivo = files.arquivo.path;
|
|
}
|
|
catch(e) {
|
|
console.log("não copia arquivo");
|
|
}
|
|
try {
|
|
pathIcone = files.icone.path;
|
|
}
|
|
catch(e) {
|
|
console.log("não copia icone");
|
|
}
|
|
var dir = '/var/www/html/sistemas/';
|
|
if (!fs.existsSync(dir + idsistemas + "/")) {
|
|
fs.mkdirSync(dir + idsistemas + "/");
|
|
fs.mkdirSync(dir + idsistemas + "/detalhes/");
|
|
fs.mkdirSync(dir + idsistemas + "/versoes/");
|
|
fs.mkdirSync(dir + idsistemas + "/backups/");
|
|
fs.mkdirSync(dir + idsistemas + "/versoes/" + versaoatual + "/");
|
|
}
|
|
else if (!fs.existsSync(dir + idsistemas + "/versoes/" + versaoatual + "/")) {
|
|
fs.mkdirSync(dir + idsistemas + "/versoes/" + versaoatual + "/");
|
|
}
|
|
if (pathArquivo != "") {
|
|
fs.rename(pathArquivo, dir + idsistemas + "/versoes/" + versaoatual + "/" + nome_install, function (err) {
|
|
console.log("arquivo copiado com sucesso");
|
|
});
|
|
}
|
|
if (pathIcone != "") {
|
|
fs.rename(pathIcone, dir + idsistemas + "/icone.png", function (err) {
|
|
console.log("icone copiado com sucesso!");
|
|
});
|
|
}
|
|
setTimeout(() => {
|
|
res.send(true);
|
|
}, 200);
|
|
});
|
|
});
|
|
|
|
router.get('/getChavesSistema/:idsistemas/:idusuarios', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const idusuarios = parseInt(req.params.idusuarios);
|
|
const sqlQuery = `SELECT * FROM chaves
|
|
WHERE idsistemas = ${idsistemas} AND idusuarios = ${idusuarios};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.get('/getChavesSistemaLista/:idsistemas/:idusuarios', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const idusuarios = parseInt(req.params.idusuarios);
|
|
const sqlQuery = `SELECT
|
|
idchaves,
|
|
licenca as Chave,
|
|
data_criacao as DataCriacao,
|
|
data_validade as DataValidade,
|
|
CASE WHEN data_validade < NOW() THEN 'Expirada' ELSE 'Válida' END AS Status,
|
|
CASE WHEN usada = 0 THEN 'Não' ELSE 'Sim' END AS Ativada
|
|
FROM chaves
|
|
WHERE idsistemas = ${idsistemas} AND idusuarios = ${idusuarios};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.post('/insertChave', function (req, res) {
|
|
let licenca = req.body.licenca;
|
|
let idusuarios = req.body.idusuarios;
|
|
let idsistemas = req.body.idsistemas;
|
|
let data_validade = req.body.data_validade;
|
|
let newdate = data_validade.toString();
|
|
newdate = newdate.substring(0, newdate.length - 1);
|
|
const sqlQuery = `INSERT INTO chaves (licenca, data_criacao, data_validade, idusuarios, usada, idsistemas)
|
|
VALUES ('${licenca}', NOW(), '${newdate}', ${idusuarios}, 0, ${idsistemas});`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.post('/insertDetalhe', function (req, res) {
|
|
const idsistemasdetalhes = req.body.idsistemasdetalhes;
|
|
const idsistemas = req.body.idsistemas;
|
|
const descricao = req.body.descricao;
|
|
const ordem = parseInt(req.body.ordem);
|
|
const habilitado = req.body.habilitado ? 1 : 0;
|
|
const sqlQuery = `INSERT INTO sistemasdetalhes (idsistemas, descricao, ordem, habilitado)
|
|
VALUES (${idsistemas}, '${descricao}', ${ordem}, ${habilitado});`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.patch('/updateDetalhe', function (req, res) {
|
|
const idsistemasdetalhes = req.body.idsistemasdetalhes;
|
|
const idsistemas = req.body.idsistemas;
|
|
const descricao = req.body.descricao;
|
|
const ordem = parseInt(req.body.ordem);
|
|
const habilitado = req.body.habilitado ? 1 : 0;
|
|
const sqlQuery = `UPDATE sistemasdetalhes SET
|
|
idsistemas = ${idsistemas},
|
|
descricao = '${descricao}',
|
|
ordem = ${ordem},
|
|
habilitado = ${habilitado}
|
|
WHERE idsistemasdetalhes = ${idsistemasdetalhes};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
});
|
|
|
|
router.delete('/deleteDetalhe/:idsistemasdetalhes/:idsistemas/:index', function (req, res) {
|
|
const idsistemasdetalhes = parseInt(req.params.idsistemasdetalhes);
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const index = parseInt(req.params.index);
|
|
const sqlQuery = `DELETE FROM sistemasdetalhes WHERE idsistemasdetalhes = ${idsistemasdetalhes};`;
|
|
ExecuteQuery(sqlQuery, req, res);
|
|
var Path = '/var/www/html/sistemas/' + idsistemas + "/detalhes/sistema_" + index + ".jpg";
|
|
const fs = require('fs');
|
|
if (fs.existsSync(Path)) {
|
|
fs.unlinkSync(Path);
|
|
}
|
|
});
|
|
|
|
router.post('/copyDetalhe', (req, res) => {
|
|
let form = new formidable.IncomingForm();
|
|
form.maxFileSize = 600 * 1024 * 1024;
|
|
form.parse(req, function(err,fields,files) {
|
|
const fs = require('fs');
|
|
var nome = fields.nome;
|
|
var idsistemas = fields.idsistemas;
|
|
var pathArquivo = files.arquivo.path;
|
|
var dir = '/var/www/html/sistemas/' + idsistemas + "/detalhes/";
|
|
fs.rename(pathArquivo, dir + nome, function (err) {
|
|
if (err)
|
|
console.log(err);
|
|
else
|
|
console.log("arquivo copiado com sucesso");
|
|
res.send(true);
|
|
});
|
|
});
|
|
});
|
|
|
|
router.get('/atualizarListaDetalhes/:idsistemas', (req, res) => {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const fs = require('fs');
|
|
var dir = '/var/www/html/sistemas/' + idsistemas + "/detalhes/";
|
|
let i = 0;
|
|
fs.readdirSync(dir).forEach(file => {
|
|
fs.renameSync(dir + file, dir + file.split('_')[0] + "_" + i + '.jpg');
|
|
i++;
|
|
});
|
|
res.send(true);
|
|
});
|
|
|
|
router.get('/getSistemaVersoes/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const fs = require('fs');
|
|
const dir = '/var/www/html/sistemas/' + idsistemas + "/versoes/";
|
|
if (!fs.existsSync(dir))
|
|
fs.mkdirSync(dir);
|
|
const versoes = fs.readdirSync(dir);
|
|
var lista = [];
|
|
versoes.forEach(versao => {
|
|
const file = fs.readdirSync(dir + versao)[0];
|
|
const arquivo = dir + versao + "/" + file;
|
|
const stats = fs.statSync(arquivo);
|
|
lista.push(arquivo + "¬" + stats.birthtime);
|
|
});
|
|
res.send(lista);
|
|
});
|
|
|
|
router.get('/getSistemaDownloads/:idsistemas', function (req, res) {
|
|
const idsistemas = parseInt(req.params.idsistemas);
|
|
const fs = require('fs');
|
|
const dir = '/var/www/html/sistemas/' + idsistemas + "/downloads/";
|
|
if (!fs.existsSync(dir))
|
|
fs.mkdirSync(dir);
|
|
const downloads = fs.readdirSync(dir);
|
|
var lista = [];
|
|
downloads.forEach(download => {
|
|
var stats = fs.statSync(dir + download);
|
|
lista.push(dir + download + "¬" + stats.birthtime);
|
|
});
|
|
res.send(lista);
|
|
});
|
|
|
|
return router;
|
|
}
|
|
|
|
module.exports = routes; |