From e56fac4b71b5d848e797fba596a8ede51b00e5ed Mon Sep 17 00:00:00 2001 From: premkumardev909 Date: Sat, 30 Nov 2024 06:29:33 +0000 Subject: [PATCH] done --- models/Movie.mode.js | 13 +++++++++++++ routes/index.js | 33 ++++++++++++++++++++++++++++++--- seeds/movies.seed.js | 24 ++++++++++++++++++------ views/index.hbs | 14 ++++++++++++-- views/movie-detail.hbs | 16 ++++++++++++++++ views/movies.hbs | 19 +++++++++++++++++++ 6 files changed, 108 insertions(+), 11 deletions(-) create mode 100644 models/Movie.mode.js create mode 100644 views/movie-detail.hbs create mode 100644 views/movies.hbs diff --git a/models/Movie.mode.js b/models/Movie.mode.js new file mode 100644 index 0000000..58d61cb --- /dev/null +++ b/models/Movie.mode.js @@ -0,0 +1,13 @@ +const mongoose = require('mongoose'); + +const movieSchema = new mongoose.Schema({ + title: String, + director: String, + stars: [String], + image: String, + description: String, + showtimes: [String] +}); + +const Movie = mongoose.model('Movie', movieSchema); +module.exports = Movie; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 3647403..b575dc7 100644 --- a/routes/index.js +++ b/routes/index.js @@ -1,7 +1,34 @@ const express = require('express'); const router = express.Router(); +const Movie = require('../models/Movie.model'); -/* GET home page */ -router.get('/', (req, res, next) => res.render('index')); +router.get('/', (req, res, next) => { + res.render('index'); +}); -module.exports = router; +router.get('/movies', (req, res) => { + Movie.find() + .then(movies => { + res.render('movies', { movies }); + }) + .catch(err => { + console.error(err); + res.status(500).send('Error retrieving movies'); + }); +}); + +router.get('/movies/:id', (req, res) => { + Movie.findById(req.params.id) + .then(movie => { + if (!movie) { + return res.status(404).send('Movie not found'); + } + res.render('movie-detail', { movie }); + }) + .catch(err => { + console.error(err); + res.status(500).send('Error retrieving movie'); + }); +}); + +module.exports = router; \ No newline at end of file diff --git a/seeds/movies.seed.js b/seeds/movies.seed.js index 39e1359..5bf3917 100644 --- a/seeds/movies.seed.js +++ b/seeds/movies.seed.js @@ -1,3 +1,6 @@ +const mongoose = require('mongoose'); +const Movie = require('../models/Movie.model'); + const movies = [ { title: "A Wrinkle in Time", @@ -81,9 +84,18 @@ const movies = [ } ]; - -// Add here the script that will be run to actually seed the database (feel free to refer to the previous lesson) - - - -// ... your code here \ No newline at end of file + mongoose.connect('mongodb://localhost/cinema', { useNewUrlParser: true, useUnifiedTopology: true }) + .then(() => { + return Movie.deleteMany(); + }) + .then(() => { + return Movie.insertMany(movies); + }) + .then(() => { + console.log("Database seeded!"); + mongoose.connection.close(); + }) + .catch(err => { + console.error(err); + mongoose.connection.close(); + }); \ No newline at end of file diff --git a/views/index.hbs b/views/index.hbs index 1f308fd..c29c065 100644 --- a/views/index.hbs +++ b/views/index.hbs @@ -1,2 +1,12 @@ -

{{title}}

-

Welcome to {{title}}

+ + + + + Cinema Home + + + +

Welcome to Cinema

+ See Movies + + \ No newline at end of file diff --git a/views/movie-detail.hbs b/views/movie-detail.hbs new file mode 100644 index 0000000..3d544ee --- /dev/null +++ b/views/movie-detail.hbs @@ -0,0 +1,16 @@ + + + + + {{movie.title}} + + + +

{{movie.title}}

+ {{movie.title}} +

Director: {{movie.director}}

+

Description: {{movie.description}}

+

Stars: {{#each movie.stars}} {{this}} {{/each}}

+

Showtimes: {{#each movie.showtimes}} {{this}} {{/each}}

+ + \ No newline at end of file diff --git a/views/movies.hbs b/views/movies.hbs new file mode 100644 index 0000000..e88775b --- /dev/null +++ b/views/movies.hbs @@ -0,0 +1,19 @@ + + + + + Movies List + + +

Movies List

+ + + \ No newline at end of file