From d0a96f4a0fd757eed252f7211717e0bac92e6400 Mon Sep 17 00:00:00 2001
From: Damien <damien.armillon@gmail.com>
Date: Wed, 24 Apr 2019 18:15:01 +0200
Subject: [PATCH] =?UTF-8?q?1ere=20version=20o=C3=B9=20post=20et=20getall?=
 =?UTF-8?q?=20sont=20possibles?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .eslintrc.json                 |  2 ++
 backend/app.js                 | 26 ++++++++++++++++++++++++++
 backend/models/modelToucan.js  | 16 ++++++++++++++++
 backend/models/toucan.js       | 16 ----------------
 backend/package.json           |  1 +
 backend/routes/routesToucan.js | 28 ++++++++++++++++++++++++++++
 backend/yarn.lock              |  2 +-
 7 files changed, 74 insertions(+), 17 deletions(-)
 create mode 100644 backend/app.js
 create mode 100644 backend/models/modelToucan.js
 delete mode 100644 backend/models/toucan.js
 create mode 100644 backend/routes/routesToucan.js

diff --git a/.eslintrc.json b/.eslintrc.json
index 1860bf5..5518ab1 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 0000000..11fe694
--- /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 0000000..ee06256
--- /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 47d3d51..0000000
--- 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 fd9efcc..10d4f1a 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 0000000..50cbeb8
--- /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 9da645d..320d54b 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=
-- 
GitLab