Skip to content
Snippets Groups Projects

Url/year/title

3 files
+ 58
17
Compare changes
  • Side-by-side
  • Inline

Files

+ 39
15
@@ -3,13 +3,27 @@ var fs = require("fs");
var path = require("path");
var { celebrate } = require("celebrate");
var mongoose = require("mongoose");
var { newToucan, validId, validGet, validTitle } = require("../utils/schema");
var { newToucan, validId, validGet, validTitle, validURL} = require("../utils/schema");
var env = require("../.env");
var isLogged = require("../utils/authentification");
var upload = require("../utils/fileSaver");
var Toucan = require("../models/modelToucan");
var router = express.Router();
/* const urltoucans = Toucan.aggregate([
{$addFields: {titlelc: {$split: [{$toLower:"$title"}, " "]}}},
{$addFields:{year:{$dateToString: {format: "%Y", date: "$date"}}}},
{$addFields:
{titlelcnospace:
{$reduce:
{input: "$titlelc",initialValue: "",
in: { $concat : ["$$value", "$$this"]}}} }},
{$addFields:
{urlId:
{$concat:["$titlelcnospace","-","$year"]}}},
{$unset:["titlelc","year","titlelcnospace"]}
]); */
router.route("/toucans")
/**
* Une route qui renvoie un json avec tous les toucans, si limit est défini et vaut n, on renvoie les n derniers toucans
@@ -124,20 +138,30 @@ router.route("/img/:id")
}
});
router.route("/pdf/:title")
.get(celebrate({params: validTitle}), function(req,res) {
Toucan.findOne({title: req.params.title}, (err,data) => {
if (err) {
res.end(500);
return;
} else if (!data) {
res.status(404).send("Toucan non trouvé");
return;
}
const id = data._id;
res.sendFile(path.resolve(env.savedExtensions[1].path,id+".pdf"));
}
);});
router.get('/pdf/:year/:title', (req, res) => {
var title = req.params.title;
var year = parseInt(req.params.year);
var nextyear = year + 1;
var title = new RegExp((title.split("-")).join("."));
console.log(title);
Toucan.find(
{
title : { $regex: title, $options : 'i' },
date : {
$gte: new Date(year+"-01-01T00:00:00.000Z"),
$lt: new Date(nextyear+"-01-01T00:00:00.000Z"),
}
})
.exec(function (err, toucan) {
if (err) {res.send(err);}
else {
const id = toucan[0]._id;
res.sendFile(path.resolve(env.savedExtensions[1].path,id+".pdf"));
}
});
});
module.exports = router;
\ No newline at end of file
Loading