From bf51c05461feb52ead45f662f797e8ef66d667e7 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Tue, 19 Dec 2017 10:07:03 -0200 Subject: [PATCH] Add better download info --- src/libs/middlewares/downloadDatabase.js | 9 +++-- src/libs/models/download.js | 9 +++++ src/libs/routes/downloads.js | 45 ++++++++++++++++++------ 3 files changed, 50 insertions(+), 13 deletions(-) diff --git a/src/libs/middlewares/downloadDatabase.js b/src/libs/middlewares/downloadDatabase.js index 0ae358fc..eea53d95 100644 --- a/src/libs/middlewares/downloadDatabase.js +++ b/src/libs/middlewares/downloadDatabase.js @@ -50,7 +50,9 @@ module.exports = function download(table, mappingTable) { table, name: req.query.name, mappingTable, - query: req.sql.toString() + query: req.sql.toString(), + status: 'Enviando', + expired: false }); console.log(dl); dl.save((err) => { @@ -63,7 +65,10 @@ module.exports = function download(table, mappingTable) { table, name: req.query.name, mappingTable, - query: req.sql.toString() + query: req.sql.toString(), + query: req.sql.toString(), + status: 'Enviando', + expired: false }); console.log(download); } diff --git a/src/libs/models/download.js b/src/libs/models/download.js index 0b5219bd..25e5eb55 100644 --- a/src/libs/models/download.js +++ b/src/libs/models/download.js @@ -35,6 +35,15 @@ let Download = new Schema({ type: Date, required: true, default: Date.now + }, + status: { + type: String + }, + size: { + type: Number + }, + expired: { + type: Boolean } }); diff --git a/src/libs/routes/downloads.js b/src/libs/routes/downloads.js index 7a6c4172..07083616 100644 --- a/src/libs/routes/downloads.js +++ b/src/libs/routes/downloads.js @@ -12,18 +12,41 @@ const User = require(`${libs}/models/user`); const passport = require('passport'); +const request = require(`request`); + +const config = require(`${libs}/config`); + downloadApp.get('/', passport.authenticate('bearer', {session: false}), (req, res, next) => { - Download.find({userId: req.user._id}, (err, downloads) => { - if (err) { - log.error(err); - return next(err); - } - - if(!downloads) { - res.statusCode = 404; - return res.json({msg: 'Nenhum download encontrado'}); - } - res.json(downloads); + request.get(config.cdn.url + '/api/v1/file', (err, response, body) => { + let cdn = JSON.parse(body); + Download.find({userId: req.user._id}, (err, downloads) => { + if (err) { + log.error(err); + return next(err); + } + + if(!downloads) { + res.statusCode = 404; + return res.json({msg: 'Nenhum download encontrado'}); + } else { + downloads.forEach((dl) => { + for(let i = 0; i < cdn.length; ++i) { + if(cdn[i].query == dl.query) { + dl.status = cdn[i].expired ? 'Expirado' : 'Enviado'; + dl.size = cdn[i].size; + dl.expired = cdn[i].expired; + dl.updatedAt = cdn[i].lastAccess; + + dl.save((err) => { + if(err) log.error(err); + }); + return; + } + } + }); + } + res.json(downloads); + }); }); }); -- GitLab