diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..0658851 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,64 @@ -// Import data here... +const books = require("../../data/index.js").books +// console.log(books) +const express = require("express") +const router = express.Router() -// Write routes here... +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 e69de29..a8d179d 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,63 @@ +const films = require("../../data/index.js").films +// console.log(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 e69de29..b6bf517 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,62 @@ +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 + }) +}) + +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 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