From 92b2af6bfd90c4b2ec2017c76f45b73b8014c655 Mon Sep 17 00:00:00 2001
From: Tom Bray <tom.bray@student-cs.fr>
Date: Tue, 7 Jun 2022 11:35:20 +0200
Subject: [PATCH] presque fin du TP

---
 backend/.env.example     |  3 ---
 backend/models/movie.js  | 12 ++++++++++++
 backend/routes/movies.js | 30 +++++++++++++++++++++++++++++-
 backend/server.js        |  4 ++--
 4 files changed, 43 insertions(+), 6 deletions(-)
 delete mode 100644 backend/.env.example
 create mode 100644 backend/models/movie.js

diff --git a/backend/.env.example b/backend/.env.example
deleted file mode 100644
index 71b3cd7..0000000
--- a/backend/.env.example
+++ /dev/null
@@ -1,3 +0,0 @@
-PORT=3000
-NODE_ENV=development
-MONGO_DB_URL=mongodb://username:password@hostname:27017/databasename?ssl=true
diff --git a/backend/models/movie.js b/backend/models/movie.js
new file mode 100644
index 0000000..5b8ff95
--- /dev/null
+++ b/backend/models/movie.js
@@ -0,0 +1,12 @@
+const mongoose = require("mongoose");
+
+const MovieSchema = new mongoose.Schema({
+  title: { type: String, required: true, unique: true },
+  type: { type: String },
+  description: { type : String },
+  url: { type : String },
+});
+
+const MovieModel = mongoose.model("MovieModel", MovieSchema, "movies");
+
+module.exports = MovieModel;
diff --git a/backend/routes/movies.js b/backend/routes/movies.js
index 8ff906c..beb0408 100644
--- a/backend/routes/movies.js
+++ b/backend/routes/movies.js
@@ -1,8 +1,36 @@
 const express = require("express");
 const router = express.Router();
+const MovieModel = require("../models/movie");
 
 router.get("/", function (req, res) {
-  res.send(["element1", "element2"]);
+  MovieModel.find({}).then(function (movies) {
+    res.json({ movies: movies });
+  });
+});
+
+router.post("/new", async function (req, res) {
+  try {
+  const newMovie = new MovieModel({
+    title: req.body.title,
+    type: req.body.type,
+  });
+  
+  
+  const createdMovie = await newMovie.save()
+
+	res.status(201).json(createdMovie);
+
+}catch (error) {
+    console.error(error);
+    if (error.code === 11000) {
+      res.status(400).json({
+        message: `Movie with title "${newMovie.title}" already exists`,
+      });
+    } else {
+      res.status(500).json({ message: "Error while creating the movie" });
+    }
+  };
+
 });
 
 module.exports = router;
diff --git a/backend/server.js b/backend/server.js
index 2d9f2f0..1fce99b 100644
--- a/backend/server.js
+++ b/backend/server.js
@@ -1,14 +1,14 @@
 const express = require("express");
 const logger = require("morgan");
 const cors = require("cors");
-//const mongoose = require("mongoose");
+const mongoose = require("mongoose");
 const indexRouter = require("./routes/index");
 const usersRouter = require("./routes/users");
 const moviesRouter = require("./routes/movies");
 const routeNotFoundJsonHandler = require("./services/routeNotFoundJsonHandler");
 const jsonErrorHandler = require("./services/jsonErrorHandler");
 
-//mongoose.connect(process.env.MONGO_DB_URL);
+mongoose.connect(process.env.MONGO_DB_URL);
 
 const app = express();
 
-- 
GitLab