From 5572dc13e3d46aa644fff46e9efdf09bcd7d68e8 Mon Sep 17 00:00:00 2001 From: Alistair Henshaw Date: Wed, 19 Jun 2024 21:52:15 +0100 Subject: [PATCH 1/2] set up to start adding routing --- src/routers/books.js | 9 +++++++-- src/routers/films.js | 9 +++++++++ src/routers/users.js | 24 ++++++++++++++++++++++++ src/server.js | 8 ++++++-- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..c7a7b67 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,9 @@ -// Import data here... +const books = require("../../data/index.js").books +// console.log(books) +const express = require("express") +const router = express.Router() -// Write routes here... + + +module.exports = router \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..6f4e868 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,9 @@ +const films = require("../../data/index.js").films +// console.log(films) + +const express = require("express") +const router = express.Router() + + + +module.exports = router \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..e0b092d 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,24 @@ +const users = require("../../data/index.js").users +// console.log(users) + +const express = require("express") +const router = express.Router() +let idCount = 4 + +router.get("/", (req, res) => { + res.status(200).json({ + users + }) +}) + +router.post("/", (req, res) => { + const user = req.body + user.id = idCount + users.push(user) + idCount++ + res.status(201).json({ + user + }) +}) + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..be3cfce 100644 --- a/src/server.js +++ b/src/server.js @@ -10,9 +10,13 @@ app.use(express.json()); app.use(morgan("dev")); // REQUIRE ROUTERS -const usersRouter = require("./routers/users"); +const usersRouter = require("./routers/users.js") +const filmsRouter = require("./routers/films.js") +const booksRouter = require("./routers/books.js") // ADD ROUTERS TO APP - +app.use("/users", usersRouter) +app.use("/films", filmsRouter) +app.use("/books", booksRouter) module.exports = app From bf294731143117db2a0941779ee4988d07d29559 Mon Sep 17 00:00:00 2001 From: Alistair Henshaw Date: Thu, 20 Jun 2024 02:30:56 +0100 Subject: [PATCH 2/2] core hopefully --- src/routers/books.js | 55 ++++++++++++++++++++++++++++++++++++++++++++ src/routers/films.js | 54 +++++++++++++++++++++++++++++++++++++++++++ src/routers/users.js | 38 ++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index c7a7b67..0658851 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -4,6 +4,61 @@ const books = require("../../data/index.js").books const express = require("express") const router = express.Router() +let idCount = 5 + +router.get("/", (req, res) => { + res.status(200).json({ + books + }) +}) + +router.post("/", (req, res) => { + const book = req.body + book.id = idCount + books.push(book) + idCount++ + res.status(201).json({ + book + }) +}) + +router.get("/:id", (req, res) => { + const id = Number(req.params.id) + const book = books.find(book => book.id === id) + res.status(200).json({ + book + }) +}) + +router.delete("/:id", (req, res) => { + const id = Number(req.params.id) + let index + books.forEach((book, i) => { + if (book.id === id) { + index = i + } + }) + const removed = books.splice(index, 1) + res.status(200).json({ + book: removed[0] + }) +}) + +router.put("/:id", (req, res) => { + const id = Number(req.params.id) + let index + books.forEach((book, i) => { + if (book.id === id) { + index = i + } + }) + const book = req.body + book.id = id + books.splice(index, 1, book) + res.status(200).json({ + book + }) +}) module.exports = router \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index 6f4e868..a8d179d 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -4,6 +4,60 @@ const films = require("../../data/index.js").films const express = require("express") const router = express.Router() +let idCount = 5 +router.get("/", (req, res) => { + res.status(200).json({ + films + }) +}) + +router.post("/", (req, res) => { + const film = req.body + film.id = idCount + films.push(film) + idCount++ + res.status(201).json({ + film + }) +}) + +router.get("/:id", (req, res) => { + const id = Number(req.params.id) + const film = films.find(film => film.id === id) + res.status(200).json({ + film + }) +}) + +router.delete("/:id", (req, res) => { + const id = Number(req.params.id) + let index + films.forEach((film, i) => { + if (film.id === id) { + index = i + } + }) + const removed = films.splice(index, 1) + res.status(200).json({ + film: removed[0] + }) +}) + +router.put("/:id", (req, res) => { + const id = Number(req.params.id) + let index + films.forEach((film, i) => { + if (film.id === id) { + index = i + } + }) + const film = req.body + film.id = id + films.splice(index, 1, film) + res.status(200).json({ + film + }) +}) module.exports = router \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index e0b092d..b6bf517 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -21,4 +21,42 @@ router.post("/", (req, res) => { }) }) +router.get("/:id", (req, res) => { + const id = Number(req.params.id) + const user = users.find(user => user.id === id) + res.status(200).json({ + user + }) +}) + +router.delete("/:id", (req, res) => { + const id = Number(req.params.id) + let index + users.forEach((user, i) => { + if (user.id === id) { + index = i + } + }) + const removed = users.splice(index, 1) + res.status(200).json({ + user: removed[0] + }) +}) + +router.put("/:id", (req, res) => { + const id = Number(req.params.id) + let index + users.forEach((user, i) => { + if (user.id === id) { + index = i + } + }) + const user = req.body + user.id = id + users.splice(index, 1, user) + res.status(200).json({ + user + }) +}) + module.exports = router \ No newline at end of file