Skip to content
Snippets Groups Projects
Commit 29b256bf authored by Damien Armillon's avatar Damien Armillon
Browse files

You can give date limit to get Toucans

parent 2fbb1a6d
Branches
No related tags found
No related merge requests found
{
"env": {
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2018
},
"rules": {
"no-trailing-spaces":"error",
"no-console" : "off",
"indent": [
"error",
4
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"double"
],
"semi": [
"error",
"always"
]
}
}
\ No newline at end of file
......@@ -9,13 +9,13 @@
{
"type": "image",
"path": "/home/damien/Bureau/imgToucan",
"path": "/home/edsheebran/Bureau/imgToucan",
"knownMime" : ["image/png","image/jpeg"],
"extensions" : [".png",".jpeg"]
},
{
"type": "pdf",
"path": "/home/damien/Bureau/pdfToucan",
"path": "/home/edsheebran/Bureau/pdfToucan",
"knownMime" : ["application/pdf"],
"extensions" : ["pdf"]
}
......
......@@ -5,6 +5,9 @@
"repository": "git@gitlab.viarezo.fr:2018armillond/api-toucan.git",
"author": "Damien <damien.armillon@gmail.com>",
"license": "MIT",
"scripts": {
"lint": "yarn eslint ."
},
"dependencies": {
"axios": "^0.18.0",
"body-parser": "^1.18.3",
......@@ -17,5 +20,8 @@
"mongoose": "^5.5.3",
"multer": "^1.4.1",
"querystring": "^0.2.0"
},
"devDependencies": {
"eslint": "^6.6.0"
}
}
......@@ -3,7 +3,7 @@ var fs = require("fs");
var path = require("path");
var { celebrate } = require("celebrate");
var { newToucan, validId, validLimit } = require("../utils/schema");
var { newToucan, validId, validGet } = require("../utils/schema");
var env = require("../.env");
var isLogged = require("../utils/authentification");
var upload = require("../utils/fileSaver");
......@@ -11,9 +11,19 @@ var Toucan = require("../models/modelToucan");
var router = express.Router();
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
.get(celebrate({query: validLimit}),function(req,res) {
Toucan.find()
/**
* Une route qui renvoie un json avec tous les toucans, si limit est défini et vaut n, on renvoie les n derniers toucans
* Si before et after sont définis (dates) on ne renvoie qu'entre ces dates
*/
.get(celebrate({query: validGet}),function(req,res) {
let options = {"date":{}};
if (req.query.before){
options["date"]["$lt"]=req.query.before;
}
if(req.query.after){
options["date"]["$gt"]=req.query.after;
}
Toucan.find(options)
.sort({date:-1})
.limit(req.query.limit)
.exec(function (err, toucans) {
......
......@@ -8,6 +8,10 @@ var newToucan = Joi.object({
});
var validId = Joi.object({id: Joi.string().hex().length(24).required()});
var validLimit = Joi.object({limit: Joi.number().integer()});
var validGet = Joi.object({
limit: Joi.number().integer(),
before: Joi.date().timestamp(),
after: Joi.date().timestamp()
});
module.exports = { newToucan, validId, validLimit };
\ No newline at end of file
module.exports = { newToucan, validId, validGet };
\ No newline at end of file
This diff is collapsed.
......@@ -9,7 +9,8 @@ L'api possède les routes :
1. `toucan/toucans` :
* `GET`: Renvoie une liste contenant tous les toucans de la bdd. Les toucans sont sous la forme d'objets avec les champs _id, date et title.
* `before` : Timestamp en paramètre : ne renvoie que les toucans d'avant la date
* `after` : Timestamp en paramètre : ne renvoie les toucans que d'après la date
* `limit` : Int en paramètre, il permet de ne pas récupérer plus de limit toucans.
* `POST` : Permet de sauvegarder un toucan, prend en champs :
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment