235 lines
8.2 KiB
JavaScript
235 lines
8.2 KiB
JavaScript
require('../connections/mysql-server');
|
|
require('../helpers/CheckToken');
|
|
require('../helpers/config');
|
|
const formidable = require('formidable');
|
|
const express = require('express');
|
|
const router = express.Router();
|
|
const bodyParser = require('body-parser');
|
|
|
|
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 files;`, res, req.originalUrl);
|
|
});
|
|
|
|
router.get('/getFile/:idfiles', verifyJWT, (req, res) => {
|
|
const idfiles = parseInt(req.params.idfiles);
|
|
execSQLQuery(`SELECT
|
|
*
|
|
FROM files
|
|
WHERE idfiles = ${idfiles};`, res, req.originalUrl);
|
|
});
|
|
|
|
router.post('/insert', verifyJWT, (req, res) => {
|
|
const description = req.body.description;
|
|
const src = req.body.src;
|
|
const extension = req.body.extension;
|
|
execSQLQuery(`INSERT INTO files (description, src, extension)
|
|
VALUES (?, ?, ?);`, res, req.originalUrl, [description, src, extension]);
|
|
});
|
|
|
|
router.patch('/update', verifyJWT, (req, res) => {
|
|
const idfiles = req.body.idfiles;
|
|
const description = req.body.description;
|
|
const src = req.body.src;
|
|
const extension = req.body.extension;
|
|
execSQLQuery(`UPDATE files SET
|
|
description = ?,
|
|
src = ?,
|
|
extension = ?
|
|
WHERE idfiles = ?;`, res, req.originalUrl, [description, src, extension, idfiles]);
|
|
});
|
|
|
|
router.get('/delete/:idfiles', verifyJWT, (req, res) => {
|
|
const idfiles = req.params.idfiles;
|
|
mysqlConnection.query(`SELECT * FROM files where idfiles in (${idfiles});`, function (error, Arquivos, fields) {
|
|
mysqlConnection.query(`delete from files where idfiles in (${idfiles});`, function (error, results, fields) {
|
|
ExcluirArquivos(Arquivos, 0, function(Sucesso) {
|
|
res.send(Sucesso);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
function ExcluirArquivos(Arquivos, Index, callback) {
|
|
if (Index < Arquivos.length) {
|
|
const fs = require('fs');
|
|
let dir = Variables('src_media') + Arquivos[Index]['src'].split('/')[3] + "/" + Arquivos[Index]['src'].split('/')[4];
|
|
if(fs.existsSync(dir)) {
|
|
fs.unlink(dir, function(err) {
|
|
Index++;
|
|
ExcluirArquivos(Arquivos, Index, callback);
|
|
});
|
|
}
|
|
else {
|
|
Index++;
|
|
ExcluirArquivos(Arquivos, Index, callback);
|
|
}
|
|
}
|
|
else {
|
|
callback(true);
|
|
}
|
|
}
|
|
|
|
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') + 'files/' + name;
|
|
|
|
var oldpath = files.file.path;
|
|
if(fs.existsSync(dir)) {
|
|
fs.unlink(dir, function(err) {
|
|
fs.rename(oldpath, dir, function (err) {
|
|
res.send(true);
|
|
})
|
|
});
|
|
}
|
|
else {
|
|
fs.rename(oldpath, dir, function (err) {
|
|
res.send(true);
|
|
})
|
|
}
|
|
});
|
|
});
|
|
|
|
// VIDEOS
|
|
|
|
router.get('/getAll1/', verifyJWT, (req, res) => {
|
|
execSQLQuery(`SELECT f.idfiles, f.description, f.src, f.extension, 'Arquivo' as type FROM files f;`, res, req.originalUrl);
|
|
})
|
|
|
|
router.get('/getAllVideos/', verifyJWT, (req, res) => {
|
|
execSQLQuery(`SELECT * FROM videos;`, res, req.originalUrl);
|
|
})
|
|
|
|
router.get('/getAllVideos1/', verifyJWT, (req, res) => {
|
|
execSQLQuery(`SELECT v.idvideos as idfiles, v.description, concat('https://myrobot.cdn.vooplayer.com/publish/', v.publishid) as src, '.mp4' as extension, 'Vídeo' as type FROM videos v;`, res, req.originalUrl);
|
|
})
|
|
|
|
router.get('/getVideo/:idvideos', verifyJWT, (req, res) => {
|
|
let idvideos = parseInt(req.params.idvideos);
|
|
execSQLQuery(`SELECT * FROM videos WHERE idvideos = ${idvideos};`, res, req.originalUrl);
|
|
})
|
|
|
|
router.post('/getVideoFiltrado', verifyJWT, (req, res) => {
|
|
const filtro = req.body.filtro;
|
|
|
|
execSQLQuery(`SELECT * FROM videos WHERE description LIKE "%${filtro}%";`, res, req.originalUrl);
|
|
})
|
|
|
|
router.post('/insertVideo', verifyJWT, (req, res) => {
|
|
const idvideos = req.body.idvideos;
|
|
const publishId = req.body.publishId;
|
|
const description = req.body.description;
|
|
|
|
execSQLQuery(`INSERT INTO videos(publishId, description) VALUES ('${publishId}','${description}');`, res, req.originalUrl);
|
|
})
|
|
|
|
router.patch('/updateVideo', verifyJWT, (req, res) => {
|
|
const idvideos = req.body.idvideos;
|
|
const publishId = req.body.publishId;
|
|
const description = req.body.description;
|
|
execSQLQuery(`UPDATE videos SET publishId = '${publishId}', description = '${description}' WHERE idvideos = ${idvideos};`,
|
|
res, req.originalUrl);
|
|
})
|
|
|
|
|
|
|
|
router.post('/CopiarBase64', verifyJWT, (req, res) => {
|
|
let form = new formidable.IncomingForm();
|
|
form.maxFileSize = 600 * 1024 * 1024;
|
|
form.parse(req, function(err, fields, files) {
|
|
var base64ToImage = require('base64-to-image');
|
|
const name = fields.name;
|
|
const ext = fields.ext.replace('.', '');
|
|
const base64 = fields.base64;
|
|
const ArrDir = name.split('/');
|
|
let Diretorio = "";
|
|
for (let i = 0; i < ArrDir.length; i++) {
|
|
if (i < ArrDir.length - 1)
|
|
Diretorio += ArrDir[i] + "/";
|
|
}
|
|
const ArrNome = ArrDir[ArrDir.length - 1].split('.');
|
|
let NomeArquivo = "";
|
|
for (let i = 0; i < ArrNome.length; i++) {
|
|
if (i < ArrNome.length - 1)
|
|
NomeArquivo += ArrNome[i] + ".";
|
|
}
|
|
NomeArquivo = NomeArquivo.substring(0, NomeArquivo.length - 1);
|
|
var ArquivoCopia = { 'fileName': NomeArquivo, 'type': 'jpg' };
|
|
if (base64ToImage(base64, Variables('src_media') + Diretorio, ArquivoCopia)) {
|
|
res.send(true);
|
|
}
|
|
else {
|
|
res.send(false);
|
|
}
|
|
});
|
|
});
|
|
|
|
router.post('/CopiaArquivos', 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 oldpath;
|
|
try {
|
|
oldpath = files.file.path;
|
|
}
|
|
catch(e) {
|
|
console.log(req.originalUrl + " error 500 - Não foi enviado o arquivo para upload no servidor: " + e);
|
|
res.send(false);
|
|
return;
|
|
}
|
|
|
|
const ArrDir = name.split('/');
|
|
let Diretorio = "";
|
|
for (let i = 0; i < ArrDir.length; i++) {
|
|
if (i < ArrDir.length - 1)
|
|
Diretorio += ArrDir[i] + "/";
|
|
}
|
|
|
|
var dirArquivo = Variables('src_media') + name;
|
|
var dirPasta = Variables('src_media') + Diretorio;
|
|
|
|
if (!fs.existsSync(dirPasta))
|
|
fs.mkdirSync(dirPasta);
|
|
|
|
if (fs.existsSync(dirArquivo)) {
|
|
fs.unlink(dirArquivo, function(err) {
|
|
//console.log(err);
|
|
fs.rename(oldpath, dirArquivo, function (err) {
|
|
console.log(err);
|
|
res.send(true);
|
|
console.log(req.originalUrl + " success 200");
|
|
});
|
|
});
|
|
}
|
|
else {
|
|
fs.rename(oldpath, dirArquivo, function (err) {
|
|
res.send(true);
|
|
console.log(req.originalUrl + " success 200");
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
return router;
|
|
};
|
|
|
|
module.exports = routes; |