170 lines
6.3 KiB
JavaScript
170 lines
6.3 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');
|
|
const formidable = require('formidable');
|
|
|
|
router.use(bodyParser.urlencoded({
|
|
limit: '50mb',
|
|
extended: true
|
|
}));
|
|
router.use(bodyParser.json({
|
|
limit: '50mb',
|
|
extended: true
|
|
}));
|
|
|
|
var routes = function () {
|
|
|
|
router.get('/getAll', verifyJWT, (req, res) => {
|
|
execSQLQuery(`SELECT
|
|
*
|
|
FROM texts;`, res, req.originalUrl);
|
|
});
|
|
|
|
router.get('/getText/:idtexts', verifyJWT, (req, res) => {
|
|
const idtexts = parseInt(req.params.idtexts);
|
|
execSQLQuery(`SELECT DISTINCT
|
|
*
|
|
FROM texts
|
|
WHERE idtexts = ${idtexts};`, res, req.originalUrl);
|
|
});
|
|
|
|
router.post('/insert', verifyJWT, (req, res) => {
|
|
const text = req.body.text;
|
|
const enabled = req.body.enabled ? 1 : 0;
|
|
const description = req.body.description;
|
|
const game = req.body.game ? 1 : 0;
|
|
execSQLQuery(`INSERT INTO texts(text, enabled, description, game)
|
|
VALUES (?, ?, ?, ?);`, res, req.originalUrl, [text, enabled, description, game]);
|
|
});
|
|
|
|
router.patch('/update', verifyJWT, (req, res) => {
|
|
const idtexts = parseInt(req.body.idtexts);
|
|
const text = req.body.text;
|
|
const enabled = req.body.enabled ? 1 : 0;
|
|
const description = req.body.description;
|
|
const game = req.body.game ? 1 : 0;
|
|
execSQLQuery(`UPDATE texts SET
|
|
text = ?,
|
|
enabled = ?,
|
|
description = ?,
|
|
game = ?
|
|
WHERE idtexts = ?;`, res, req.originalUrl, [text, enabled, description, game, idtexts]);
|
|
});
|
|
|
|
router.post('/copy', verifyJWT, (req, res) => {
|
|
let form = new formidable.IncomingForm();
|
|
form.maxFileSize = 600 * 1024 * 1024;
|
|
form.parse(req, function(err,fields,files){
|
|
const fs = require('fs');
|
|
var name = fields.name;
|
|
var dir = Variables('src_media') + 'games/' + name;
|
|
var oldpath = files.file.path;
|
|
|
|
if (fs.existsSync(dir)) {
|
|
const rimraf = require('rimraf');
|
|
rimraf(dir, function(){
|
|
console.log("Apagado");
|
|
copiaJogo(dir, name, res, fs, oldpath);
|
|
});
|
|
}
|
|
else {
|
|
copiaJogo(dir, name, res, fs, oldpath);
|
|
}
|
|
|
|
});
|
|
});
|
|
|
|
router.get('/CarregarJogo/:idgames', (req, res) => {
|
|
const Protocolo = req.headers.referer.split('/')[0] + "//";
|
|
const fs = require('fs');
|
|
const idgames = parseInt(req.params.idgames);
|
|
const DirLocal = `${Variables('src_media')}games/${idgames}/`;
|
|
const DirWeb = `${Protocolo}${req.headers.host.split(':')[0]}/games/${idgames}/`;
|
|
if (fs.existsSync(DirLocal)) {
|
|
res.redirect(DirWeb + 'index.html')
|
|
}
|
|
else {
|
|
const shell = require('shelljs');
|
|
shell.exec('wget -c -P /var/www/html/ -N -m -np -nH -l3 "http://18.228.91.135/games/' + idgames + '/"', function (arquivosbaixados) {
|
|
shell.exec('wget -c -P /var/www/html/ -nH -r -k -np "http://18.228.91.135/games/' + idgames + '/Build/" -R index.html?*', function (Sucesso) {
|
|
shell.exec('chmod -R 777 /var/www/html/games/' + idgames + '/', function (Sucesso) {
|
|
console.log(DirWeb + 'index.html');
|
|
res.redirect(DirWeb + 'index.html');
|
|
})
|
|
})
|
|
})
|
|
}
|
|
})
|
|
|
|
router.get('/SolucaoProblemas/:idgames', verifyJWT, (req, res) => {
|
|
const idgames = req.params.idgames;
|
|
const shell = require('shelljs');
|
|
shell.exec('rm -rf ' + Variables('src_media') + 'games/' + idgames + '/', function(Sucesso) {
|
|
console.log("Jogo " + idgames + " excluido com sucesso!");
|
|
res.send(true);
|
|
});
|
|
});
|
|
|
|
router.post('/InsertGamesExercise', verifyJWT, (req, res) => {
|
|
const idgames = parseInt(req.body.idgames);
|
|
const idexercises = req.body.idexercises;
|
|
const idzoechattime = req.body.idzoechattime;
|
|
execSQLQuery(`INSERT INTO gamesexercises(idgames, idexercises, idzoechattime) VALUES
|
|
(?, ?, ?);`, res, req.originalUrl, [idgames, idexercises, idzoechattime]);
|
|
});
|
|
|
|
router.get('/getInteracoes/:idgames', verifyJWT, (req, res) => {
|
|
const idgames = parseInt(req.params.idgames);
|
|
execSQLQuery(`select
|
|
ge.*,
|
|
CASE
|
|
WHEN ge.idexercises IS NOT NULL THEN (SELECT e.description FROM exercises e WHERE e.idexercises = ge.idexercises)
|
|
WHEN ge.idzoechattime IS NOT NULL THEN (SELECT z.description FROM zoechattime z WHERE z.idzoechattime = ge.idzoechattime)
|
|
END AS 'description',
|
|
CASE
|
|
WHEN ge.idexercises IS NOT NULL THEN 'Exercício'
|
|
WHEN ge.idzoechattime IS NOT NULL THEN 'ChatTime'
|
|
END AS 'type'
|
|
from gamesexercises ge
|
|
where ge.idgames = ${idgames};`, res, req.originalUrl);
|
|
});
|
|
|
|
router.delete('/deleteInteracao/:idgamesexercises', verifyJWT, (req, res) => {
|
|
const idgamesexercises = parseInt(req.params.idgamesexercises);
|
|
execSQLQuery(`delete from gamesexercises
|
|
where idgamesexercises = ${idgamesexercises};`, res, req.originalUrl);
|
|
});
|
|
|
|
return router;
|
|
};
|
|
|
|
function copiaJogo(dir, name, res, fs, oldpath) {
|
|
fs.mkdirSync(dir);
|
|
fs.rename(oldpath, dir + ".zip", function (err) {
|
|
console.log('Copiado com sucesso!');
|
|
require('all-unpacker').unpackZip(dir + ".zip", {
|
|
targetDir: dir,
|
|
forceDirectory: true
|
|
}, function(err, files, text) {
|
|
if (err) return console.error(err);
|
|
if (files) console.log('files', files);
|
|
if (text) {
|
|
console.log('text', text)
|
|
fs.readFile(dir, (err, data) => {
|
|
//if (err) throw err;
|
|
console.log("Extraído com sucesso!");
|
|
fs.unlink(dir + '.zip', function() {
|
|
console.log("Apagado com sucesso!");
|
|
res.send(true);
|
|
})
|
|
});
|
|
};
|
|
})
|
|
})
|
|
}
|
|
|
|
module.exports = routes;
|