From c83e3b2867a9eca95b1533eacef28c55a314fff7 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 15:48:10 +0100 Subject: [PATCH 1/8] W2 --- src/routers/books.js | 11 +++++++++++ src/server.js | 10 +++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..dc09aa7 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,15 @@ // Import data here... +const express = require('express') +const router = express.Router() +const { books } = require('../../data') + // Write routes here... +router.get('/', (request, respond) => { + respond.status(200).json({ books }) +}) + + + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..4778a53 100644 --- a/src/server.js +++ b/src/server.js @@ -2,17 +2,21 @@ const express = require("express"); const app = express(); const cors = require("cors"); -const morgan = require("morgan"); +//const morgan = require("morgan"); // SETUP MIDDLEWARE app.use(cors()); app.use(express.json()); -app.use(morgan("dev")); +//app.use(morgan('dev')); // REQUIRE ROUTERS const usersRouter = require("./routers/users"); +const booksRouter = require("./routers/books") +const filmsRouter = require("./routers/films") // ADD ROUTERS TO APP - +//app.use("/users", usersRouter) +//app.use("/films", filmsRouter) +app.use("/books", booksRouter) module.exports = app From a578f2513761db13e4f200aa097a65330aa5aa21 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 17:06:37 +0100 Subject: [PATCH 2/8] books done --- src/routers/books.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index dc09aa7..364ba14 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -6,10 +6,53 @@ const { books } = require('../../data') // Write routes here... +//all books router.get('/', (request, respond) => { respond.status(200).json({ books }) }) +// the ID''S +router.get('/:id', (request, respond) => { + const book = books.find(b => b.id === parseInt(request.params.id)) + if (book) { + respond.status(200).json({ book }) + } else { + respond.status(404).json({ error: 'Book not found'}) + } +}) + +router.post('/', (request, respond) => { + const newBook = {id: books.length ++, ...request.body} + books.push(newBook) + respond.status(201).json({ book: newBook }) +}) + +router.put('/:id', (request, respond) => { + const bookId = parseInt(request.params.id) + const { title, author } = request.body + const bookIndex = books.findIndex(b => b.id === bookId); + + if (bookIndex !== -1) { + // Updates the book found at bookIndex + books[bookIndex] = { id: bookId, title, author }; + respond.status(200).json({ book: books[bookIndex] }); + } else { + respond.status(404).json({ error: "Book not found" }); + } +}) + +router.delete("/:id", (request, respond) => { + const bookIndex = books.findIndex(b => b.id === parseInt(request.params.id)) + if (bookIndex ==! -1) { + const deletedBook = books.splice(bookIndex, 1)[0] + respond.status(200).json({ book: deletedBook }) + } else { + respond.status(404).json({ error: 'Book not found'}) + } +}) + + + module.exports = router \ No newline at end of file From ec53c597d9232e1617ade7cd0b9617c539599da4 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 19:01:19 +0100 Subject: [PATCH 3/8] films done --- src/routers/films.js | 50 ++++++++++++++++++++++++++++++++++++++++++++ src/server.js | 7 ++++--- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..2b12348 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,50 @@ + + +const express = require('express') +const router = express.Router() +const { films } = require('../../data') + + +router.get('/', (request, respond) => { + respond.status(200).json({ films }) +}) + +router.get('/:id', (request, respond) => { + const film = films.find(f => f.id === parseInt (request.params.id)) + if (film) { + respond.status(200).json({ film }) + } else { + respond.status(404).json({ error: "film not found" }) + } +}) + +router.post('/', (request, respond) => { + const newFilm = {id: films.length ++, ...request.body} + films.push(newFilm) + respond.status(201).json({film: newFilm} ) +}) + +router.put('/:id', (request, respond) => { + const filmId = parseInt(request.params.id) + const { title, director } = request.body + const filmIndex = films.findIndex(f => f.id === filmId) + + if (filmIndex !== -1) { + // + films[filmIndex] = {id: filmId, title, director} + respond.status(200).json({ film: films[filmIndex] }) + } else { + respond.status(404).json ({error: 'Film not found' }) + } +}) + +router.delete('/:id', (request, respond) => { + const filmIndex = films.findIndex(b => b.id === parseInt(request.params.id)) + if (filmIndex ==! -1) { + const deletedFilm = films.splice(filmIndex, 1)[0] + respond.status(200).json({ film: deletedFilm }) + } else { + respond.status(404).json({ error: 'Film not found'}) + } +}) +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index 4778a53..e21cb97 100644 --- a/src/server.js +++ b/src/server.js @@ -2,21 +2,22 @@ const express = require("express"); const app = express(); const cors = require("cors"); -//const morgan = require("morgan"); +const morgan = require("morgan"); // SETUP MIDDLEWARE app.use(cors()); app.use(express.json()); -//app.use(morgan('dev')); +app.use(morgan('dev')); // REQUIRE ROUTERS const usersRouter = require("./routers/users"); const booksRouter = require("./routers/books") const filmsRouter = require("./routers/films") + // ADD ROUTERS TO APP //app.use("/users", usersRouter) -//app.use("/films", filmsRouter) +app.use("/films", filmsRouter) app.use("/books", booksRouter) module.exports = app From 6e267b4a2e6f75f18fff74068857b29f3a509e5a Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 19:48:48 +0100 Subject: [PATCH 4/8] donw --- src/routers/books.js | 4 ++- src/routers/films.js | 4 +-- src/routers/users.js | 49 +++++++++++++++++++++++++++++++++++ src/server.js | 2 +- test/api/routes/films.spec.js | 10 +++---- 5 files changed, 59 insertions(+), 10 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 364ba14..ea50b41 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -43,7 +43,7 @@ router.put('/:id', (request, respond) => { router.delete("/:id", (request, respond) => { const bookIndex = books.findIndex(b => b.id === parseInt(request.params.id)) - if (bookIndex ==! -1) { + if (bookIndex !== -1) { const deletedBook = books.splice(bookIndex, 1)[0] respond.status(200).json({ book: deletedBook }) } else { @@ -55,4 +55,6 @@ router.delete("/:id", (request, respond) => { + + module.exports = router \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index 2b12348..bf11850 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -1,5 +1,3 @@ - - const express = require('express') const router = express.Router() const { films } = require('../../data') @@ -40,7 +38,7 @@ router.put('/:id', (request, respond) => { router.delete('/:id', (request, respond) => { const filmIndex = films.findIndex(b => b.id === parseInt(request.params.id)) - if (filmIndex ==! -1) { + if (filmIndex !== -1) { const deletedFilm = films.splice(filmIndex, 1)[0] respond.status(200).json({ film: deletedFilm }) } else { diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..0fd78d5 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,49 @@ +const express = require('express') +const router = express.Router() +const { users } = require('../../data') + + +router.get('/', (request, respond) => { + respond.status(200).json({ users }) +}) + +router.get('/:id', (request, respond) => { + const user = users.find(u => u.id === parseInt (request.params.id)) + if (user) { + respond.status(200).json({ user }) + } else { + respond.status(400).json({ error: 'user not found' }) + } +}) + +router.post('/', (request, respond) => { + const newUser = {id: users.length ++, ...request.body} + users.push(newUser) + respond.status(201).json({ user: newUser }) +}) + +router.put('/:id', (request, respond) => { + const userId = parseInt(request.params.id) + const { email } = request.body + const userIndex = users.findIndex(u => u.id === userId) + + if (userIndex !== -1) { + + users[userIndex] = {id: userId, email} + respond.status(200).json({ user: users[userIndex] }) + } else { + respond.status(400).json({ error: 'User not found' }) + } +}) + +router.delete('/:id', (request, respond) => { + const userIndex = users.findIndex(u => u.id === parseInt(request.params.id)) + if (userIndex !== -1) { + const deletedUser = users.splice(userIndex, 1)[0] + respond.status(200).json({ user: deletedUser }) + } else { + respond.status(400).json({ error: 'User not found' }) + } +}) + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index e21cb97..9acf136 100644 --- a/src/server.js +++ b/src/server.js @@ -16,7 +16,7 @@ const filmsRouter = require("./routers/films") // ADD ROUTERS TO APP -//app.use("/users", usersRouter) +app.use("/users", usersRouter) app.use("/films", filmsRouter) app.use("/books", booksRouter) diff --git a/test/api/routes/films.spec.js b/test/api/routes/films.spec.js index 24590d0..6da385d 100644 --- a/test/api/routes/films.spec.js +++ b/test/api/routes/films.spec.js @@ -7,7 +7,7 @@ describe("Films Endpoint", () => { app = require("../../../src/server.js") }) describe("GET /films", () => { - it("will list all films", async () => { + it("will list all films", async () => { //done const response = await supertest(app).get("/films") expect(response.status).toEqual(200) @@ -15,7 +15,7 @@ describe("Films Endpoint", () => { expect(response.body.films.length).toEqual(4) }) - it("will list a film", async () => { + it("will list a film", async () => { //done const response = await supertest(app).get("/films/1") expect(response.status).toEqual(200) @@ -28,7 +28,7 @@ describe("Films Endpoint", () => { describe("POST /films", () => { - it("will create a new film", async () => { + it("will create a new film", async () => { //done const response = await supertest(app).post("/films").send(film1) expect(response.status).toEqual(201) @@ -42,7 +42,7 @@ describe("Films Endpoint", () => { }) describe("PUT /films", () => { - it("will update a film", async () => { + it("will update a film", async () => { //done const response = await supertest(app).put("/films/1").send(film2) expect(response.status).toEqual(200) @@ -53,7 +53,7 @@ describe("Films Endpoint", () => { }) }) - describe("DELETE /films", () => { + describe("DELETE /films", () => { //done it("will return the deleted the film", async () => { const response = await supertest(app).delete("/films/1") From c13da03e6a01ce8a9f6d635c54725b30f742df11 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 20:01:38 +0100 Subject: [PATCH 5/8] e --- src/routers/books.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index ea50b41..b7dc438 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -29,12 +29,12 @@ router.post('/', (request, respond) => { router.put('/:id', (request, respond) => { const bookId = parseInt(request.params.id) - const { title, author } = request.body + const { title, author, pages,types } = request.body const bookIndex = books.findIndex(b => b.id === bookId); if (bookIndex !== -1) { // Updates the book found at bookIndex - books[bookIndex] = { id: bookId, title, author }; + books[bookIndex] = { id: bookId, title, author, pages, types }; respond.status(200).json({ book: books[bookIndex] }); } else { respond.status(404).json({ error: "Book not found" }); From 69c19aa1de490e4fb7af39d62f8ea746bb51e902 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 20:10:52 +0100 Subject: [PATCH 6/8] e --- src/routers/films.js | 2 +- src/routers/users.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/routers/films.js b/src/routers/films.js index bf11850..635cf22 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -17,7 +17,7 @@ router.get('/:id', (request, respond) => { }) router.post('/', (request, respond) => { - const newFilm = {id: films.length ++, ...request.body} + const newFilm = {id: films.length +1, ...request.body} films.push(newFilm) respond.status(201).json({film: newFilm} ) }) diff --git a/src/routers/users.js b/src/routers/users.js index 0fd78d5..34d1300 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -12,12 +12,12 @@ router.get('/:id', (request, respond) => { if (user) { respond.status(200).json({ user }) } else { - respond.status(400).json({ error: 'user not found' }) + respond.status(404).json({ error: 'user not found' }) } }) router.post('/', (request, respond) => { - const newUser = {id: users.length ++, ...request.body} + const newUser = {id: users.length +1, ...request.body} users.push(newUser) respond.status(201).json({ user: newUser }) }) @@ -32,7 +32,7 @@ router.put('/:id', (request, respond) => { users[userIndex] = {id: userId, email} respond.status(200).json({ user: users[userIndex] }) } else { - respond.status(400).json({ error: 'User not found' }) + respond.status(404).json({ error: 'User not found' }) } }) @@ -42,7 +42,7 @@ router.delete('/:id', (request, respond) => { const deletedUser = users.splice(userIndex, 1)[0] respond.status(200).json({ user: deletedUser }) } else { - respond.status(400).json({ error: 'User not found' }) + respond.status(404).json({ error: 'User not found' }) } }) From 29b3487a8f05580a42b20184977c24ec6159ea01 Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 20:26:57 +0100 Subject: [PATCH 7/8] e --- src/routers/books.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index b7dc438..bf16b27 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -22,24 +22,24 @@ router.get('/:id', (request, respond) => { }) router.post('/', (request, respond) => { - const newBook = {id: books.length ++, ...request.body} + const newBook = {id: books.length +1, ...request.body} books.push(newBook) respond.status(201).json({ book: newBook }) }) router.put('/:id', (request, respond) => { const bookId = parseInt(request.params.id) - const { title, author, pages,types } = request.body - const bookIndex = books.findIndex(b => b.id === bookId); - + const { title, author, pages, types } = request.body + const bookIndex = books.findIndex(b => b.id === bookId) + if (bookIndex !== -1) { - // Updates the book found at bookIndex - books[bookIndex] = { id: bookId, title, author, pages, types }; - respond.status(200).json({ book: books[bookIndex] }); + // Update the book found at bookIndex + books[bookIndex] = { id: bookId, title, author, pages, types } + respond.status(200).json({ book: books[bookIndex] }) } else { - respond.status(404).json({ error: "Book not found" }); + respond.status(404).json({ error: "Book not found" }) } -}) +}); router.delete("/:id", (request, respond) => { const bookIndex = books.findIndex(b => b.id === parseInt(request.params.id)) From c7b1ca511125c22a60504eaf96efe73779dff07f Mon Sep 17 00:00:00 2001 From: Oluwagbemi Abiodun Date: Sun, 23 Jun 2024 22:29:00 +0100 Subject: [PATCH 8/8] kk --- src/routers/books.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index bf16b27..ede79ae 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -22,19 +22,20 @@ router.get('/:id', (request, respond) => { }) router.post('/', (request, respond) => { - const newBook = {id: books.length +1, ...request.body} + const newBook = {id: books.length + 1, ...request.body} books.push(newBook) respond.status(201).json({ book: newBook }) }) router.put('/:id', (request, respond) => { const bookId = parseInt(request.params.id) - const { title, author, pages, types } = request.body - const bookIndex = books.findIndex(b => b.id === bookId) + const updatedBook = request.body + + const bookIndex = books.findIndex(book => book.id === bookId) if (bookIndex !== -1) { // Update the book found at bookIndex - books[bookIndex] = { id: bookId, title, author, pages, types } + books[bookIndex] = { id: bookId, ...updatedBook } respond.status(200).json({ book: books[bookIndex] }) } else { respond.status(404).json({ error: "Book not found" })