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