From 0b3346bbf826f1e1b40f763b8c0bccd1566df694 Mon Sep 17 00:00:00 2001 From: Akintayo Durotoye Date: Mon, 5 Aug 2024 07:45:12 +0100 Subject: [PATCH] updated --- src/routers/books.js | 73 ++++++++++++++++++++++++++++++++++++++++++-- src/routers/films.js | 72 +++++++++++++++++++++++++++++++++++++++++++ src/routers/users.js | 72 +++++++++++++++++++++++++++++++++++++++++++ src/server.js | 8 +++-- 4 files changed, 220 insertions(+), 5 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..2ae9843 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,73 @@ -// Import data here... - +const router = require("express").Router(); +const data = require("../../data"); +console.log(data) // Write routes here... +let books = data.books +// Get all books +router.get('/', function (req, res) { + res.status(200).json({ + books: books + }) +}) + + +// Get a book by id +router.get('/:id', function (req, res) { + const id = req.params.id; + + const book = books.find(function (book) { + return book.id.toString() === id + }) + + res.status(200).json({ + book: book + }) +}) + +// Add a new book +router.post('/', function (req, res) { + const book = req.body; + + // push new movie onto the array + books.push(book); + + res.status(201).json({ + message: 'Added book succesffully' + }) +}) + +// delete book by id +router.delete('/:id', function (req, res) { + const id = req.params.id; + + books = books.filter(function (book) { + return book.id.toString() !== id + }) + + res.status(200).json({ + message: `Deleted book ${id} successfully` + }) + +}) + +// upadte book by id +router.put('/:id', function (req, res) { + const id = req.params.id + const updatedbook = req.body; + + // get index of movie to update + const existingbookIndex = books.findIndex(function (book) { + return book.id.toString() === id; + }) + + // update movie in array + books[existingbookIndex] = updatedbook; + + res.status(200).json({ + message: `Updated movie ${books[existingbookIndex].id} successfully` + }) + + }) + +module.exports = router; \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..b3b829f 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,72 @@ +const router = require("express").Router(); +const data = require("../../data"); + +console.log(data.films) +// Write routes here... +let films = data.films +// Get all films +router.get('/', function (req, res) { + res.status(200).json({ + films: films + }) +}) + +// Get a film by id +router.get('/:id', function (req, res) { + const id = req.params.id; + + const film = films.find(function (film) { + return film.id.toString() === id + }) + + res.status(200).json({ + film: film + }) +}) + +// Add a new film +router.post('/', function (req, res) { + const film = req.body; + + // push new movie onto the array + films.push(film); + + res.status(201).json({ + message: 'Added film succesffully' + }) +}) + +// delete film by id +router.delete('/:id', function (req, res) { + const id = req.params.id; + + films = films.filter(function (film) { + return film.id.toString() !== id + }) + + res.status(200).json({ + message: `Deleted film ${id} successfully` + }) + +}) + +// upadte film by id +router.put('/:id', function (req, res) { + const id = req.params.id + const updatedfilm = req.body; + + // get index of movie to update + const existingfilmIndex = films.findIndex(function (film) { + return film.id.toString() === id; + }) + + // update movie in array + films[existingfilmIndex] = updatedfilm; + + res.status(200).json({ + message: `Updated movie ${films[existingfilmIndex].id} successfully` + }) + + }) + +module.exports = router; \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..e7c3738 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,72 @@ +const router = require("express").Router(); +const data = require("../../data"); + +console.log(data) +// Write routes here... +let users = data.users +// Get all users +router.get('/', function (req, res) { + res.status(200).json({ + users: users + }) +}) + + +// Get a user by id +router.get('/:id', function (req, res) { + const id = req.params.id; + + const user = users.find(function (u) { + return u.id.toString() === id + }) + + res.status(200).json({ + user: user + }) +}) + +// Add a new user +router.post('/', function (req, res) { + const user = req.body; + + users.push(user); + + res.status(201).json({ + message: 'Added user succesffully' + }) +}) + +// delete user by id +router.delete('/:id', function (req, res) { + const id = req.params.id; + + users = users.filter(function (user) { + return user.id.toString() !== id + }) + + res.status(200).json({ + message: `Deleted user ${id} successfully` + }) + +}) + +// upadte user by id +router.put('/:id', function (req, res) { + const id = req.params.id + const updatedUser = req.body; + + // get index of movie to update + const existingUserIndex = users.findIndex(function (user) { + return user.id.toString() === id; + }) + + // update movie in array + users[existingUserIndex] = updatedUser; + + res.status(200).json({ + message: `Updated movie ${users[existingUserIndex].id} successfully` + }) + + }) + +module.exports = router; \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..247a664 100644 --- a/src/server.js +++ b/src/server.js @@ -11,8 +11,10 @@ app.use(morgan("dev")); // REQUIRE ROUTERS const usersRouter = require("./routers/users"); - +const filmsRouter = require("./routers/films") +const booksRouter = require("./routers/books") // ADD ROUTERS TO APP - - +app.use('/books', booksRouter) +app.use('/films', filmsRouter) +app.use('/users', usersRouter) module.exports = app