Commit 29b256bf authored by Damien Armillon's avatar Damien Armillon
Browse files

You can give date limit to get Toucans

parent 2fbb1a6d
{
"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 :
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment