diff --git a/.eslintrc.json b/.eslintrc.json index 1860bf5c7f40ac8a6403d1c8922234052acd5524..5518ab15887ee515e9c033e84acf380ab9816a1f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -8,6 +8,8 @@ "ecmaVersion": 2018 }, "rules": { + "no-trailing-spaces":"error", + "no-console" : "off", "indent": [ "error", 4 diff --git a/backend/app.js b/backend/app.js new file mode 100644 index 0000000000000000000000000000000000000000..11fe694bd54e7f819140ef2fcf5065b2730f1dda --- /dev/null +++ b/backend/app.js @@ -0,0 +1,26 @@ +var express = require("express"); +var bodyParser = require("body-parser"); +var mongoose = require("mongoose"); +var routesToucan = require("./routes/routesToucan"); + +var app = express(); +var dbName = "toucanDB"; +var connectionString = "mongodb://localhost:27017/" + dbName; + +mongoose.connect(connectionString, {useNewUrlParser: true}); +var db = mongoose.connection; +db.on("error", console.error.bind(console, "connection error:")); +db.once("open", function() { + console.log("on est connecté!"); +}); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({extended: true})); +app.use("/api",routesToucan); + + +app.set("port", process.env.PORT || 8000); + +var server = app.listen(app.get("port"), function() { + console.log("Express écoute sur le port " + server.address().port); +}); diff --git a/backend/models/modelToucan.js b/backend/models/modelToucan.js new file mode 100644 index 0000000000000000000000000000000000000000..ee06256262412b323ee5aa1465eaaa192ca17901 --- /dev/null +++ b/backend/models/modelToucan.js @@ -0,0 +1,16 @@ +var mongoose = require("mongoose"); + +var Schema = mongoose.Schema; + +/** + * Indique ce que l'on doit trouver dans un toucan + */ +var toucanSchema = new Schema ({ + title: {type : String, required: true}, // Chaque toucan doit avoir un titre et une date + date: {type : Date, required: true}, +}); + +// La date doit être unique +toucanSchema.index({date:-1},{unique: true}); + +module.exports = mongoose.model("Toucan",toucanSchema); \ No newline at end of file diff --git a/backend/models/toucan.js b/backend/models/toucan.js deleted file mode 100644 index 47d3d51758180c936acfa5e62dac35b1f559b2a3..0000000000000000000000000000000000000000 --- a/backend/models/toucan.js +++ /dev/null @@ -1,16 +0,0 @@ -var mangoose = require("mongoose"); - -var Schema = mangoose.Schema; - -/** - * Indique ce que l'on doit trouver dans un toucan - */ -var toucanSchema = new Schema ({ - title: String, - date: Date, -}); - -// La date doit être unique -toucanSchema.index({date:-1},{unique: true}); - -module.exports = mangoose.model("Toucan",toucanSchema); \ No newline at end of file diff --git a/backend/package.json b/backend/package.json index fd9efccb699c803bf8ce42509050b33eb8a9be13..10d4f1ad4e63ac9580e3125565acbb8fcecc52b6 100644 --- a/backend/package.json +++ b/backend/package.json @@ -6,6 +6,7 @@ "author": "Damien <damien.armillon@gmail.com>", "license": "MIT", "dependencies": { + "body-parser": "^1.18.3", "express": "^4.16.4", "mongoose": "^5.5.3" } diff --git a/backend/routes/routesToucan.js b/backend/routes/routesToucan.js new file mode 100644 index 0000000000000000000000000000000000000000..50cbeb81db3d4184922f43e2feb4ebedf5defc80 --- /dev/null +++ b/backend/routes/routesToucan.js @@ -0,0 +1,28 @@ +var express = require("express"); +var Toucan = require("../models/modelToucan"); +var router = express.Router(); + +router.route("/toucans") + // Une route qui renvoie un json avec tous les toucans + .get(function(req,res) { + Toucan.find() + .sort({date:-1}) + .exec(function (err, toucans) { + if (err) { + res.send(err); + } + res.json(toucans); + }); + }) + // Une route pour créer un toucan + .post(function(req,res) { + var toucan = new Toucan(req.body); + toucan.save(function(err) { + if (err) { + res.send(err); + } + res.send({message: "Toucan ajouté !"}); + }); + }); + +module.exports = router; \ No newline at end of file diff --git a/backend/yarn.lock b/backend/yarn.lock index 9da645d0703d4779f6c46bd2138858b20af8bb29..320d54b81e55040927542a82de9675055e57ec44 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -27,7 +27,7 @@ bluebird@3.5.1: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" integrity sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== -body-parser@1.18.3: +body-parser@1.18.3, body-parser@^1.18.3: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=