From 56d34c16daddca27b4bfeeeaec96385c6b4d44a0 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 13:15:29 +0000 Subject: [PATCH 01/23] added get all books --- src/routers/books.js | 10 ++++++++-- src/server.js | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..b715a9a 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,10 @@ -// Import data here... +const { books } = require('../../data/index.js') +const express = require('express') +const router = express.Router() -// Write routes here... +router.get('/', (req, res) => { + res.json({ books }) +}) + +module.exports = router; \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..57d2f02 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 booksRouter = require("./routers/books"); // ADD ROUTERS TO APP +app.use('/books', booksRouter) module.exports = app From 92455556ff5019601fe282450d969ed67dad5897 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 13:17:11 +0000 Subject: [PATCH 02/23] book post added --- src/routers/books.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index b715a9a..b48fc4f 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -7,4 +7,11 @@ router.get('/', (req, res) => { res.json({ books }) }) +router.post('/', (req, res) => { + const body = req.body + const newBook = { id: books.length + 1, ...body } + books.push(newBook) + res.status(201).json({ book: newBook }) +}) + module.exports = router; \ No newline at end of file From 19670d53e0db0a2866e842e615f795cfc0f2071a Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 13:18:21 +0000 Subject: [PATCH 03/23] get books by id --- src/routers/books.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index b48fc4f..8ada72c 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -14,4 +14,14 @@ router.post('/', (req, res) => { res.status(201).json({ book: newBook }) }) +router.get('/:id', (req, res) => { + const id = req.params.id + const book = books.find(book => book.id === parseInt(id)) + if (book) { + res.json({ book }) + } else { + res.status(404).json({ error: 'Book not found' }) + } +}) + module.exports = router; \ No newline at end of file From 943c51a7a3b10d869d3cd16121614ad7df6469d0 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 13:18:59 +0000 Subject: [PATCH 04/23] delete by id added --- src/routers/books.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index 8ada72c..d2cbdea 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -24,4 +24,15 @@ router.get('/:id', (req, res) => { } }) +router.delete('/:id', (req, res) => { + const id = req.params.id + const book = books.find(book => book.id === parseInt(id)) + if (book) { + books.splice(books.indexOf(book), 1) + res.json({ book }) + } else { + res.status(404).json({ error: 'Book not found' }) + } +}) + module.exports = router; \ No newline at end of file From 3f88f687d429b726a2e67f73d106bfe40c4d4d66 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 15:24:06 +0000 Subject: [PATCH 05/23] added put request --- src/routers/books.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index d2cbdea..50df960 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -35,4 +35,16 @@ router.delete('/:id', (req, res) => { } }) +router.put('/:id', (req, res) => { + const id = req.params.id + const book = books.find(book => book.id === parseInt(id)) + if (book) { + const body = req.body + Object.assign(book, body) + res.json({ book }) + } else { + res.status(404).json({ error: 'Book not found' }) + } +}) + module.exports = router; \ No newline at end of file From 25f15b3489cdd1b191d3560b9e4fec2ad500ebeb Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 15:32:15 +0000 Subject: [PATCH 06/23] minor change for simplicity --- src/routers/books.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 50df960..ab9c4c1 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -39,8 +39,7 @@ router.put('/:id', (req, res) => { const id = req.params.id const book = books.find(book => book.id === parseInt(id)) if (book) { - const body = req.body - Object.assign(book, body) + Object.assign(book, req.body) res.json({ book }) } else { res.status(404).json({ error: 'Book not found' }) From 97787ff2c284bd88450d1f143332a1b14e9f840e Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 15:35:39 +0000 Subject: [PATCH 07/23] added findbook function to simplify repeating lines --- src/routers/books.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index ab9c4c1..fc4e559 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -3,6 +3,10 @@ const { books } = require('../../data/index.js') const express = require('express') const router = express.Router() +const findBook = (id) => { + return books.find(book => book.id === parseInt(id)) +} + router.get('/', (req, res) => { res.json({ books }) }) @@ -15,8 +19,7 @@ router.post('/', (req, res) => { }) router.get('/:id', (req, res) => { - const id = req.params.id - const book = books.find(book => book.id === parseInt(id)) + const book = findBook(req.params.id) if (book) { res.json({ book }) } else { @@ -25,8 +28,7 @@ router.get('/:id', (req, res) => { }) router.delete('/:id', (req, res) => { - const id = req.params.id - const book = books.find(book => book.id === parseInt(id)) + const book = findBook(req.params.id) if (book) { books.splice(books.indexOf(book), 1) res.json({ book }) @@ -36,8 +38,7 @@ router.delete('/:id', (req, res) => { }) router.put('/:id', (req, res) => { - const id = req.params.id - const book = books.find(book => book.id === parseInt(id)) + const book = findBook(req.params.id) if (book) { Object.assign(book, req.body) res.json({ book }) From 66719efed4283d3ebc46b046722a1ade5992daf0 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:05:49 +0000 Subject: [PATCH 08/23] users setup --- src/routers/users.js | 8 ++++++++ src/server.js | 1 + 2 files changed, 9 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..484f142 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,8 @@ +const { users } = require('../../data/index.js') + +const express = require('express') +const router = express.Router() + +const findUser = (id) => { + return users.find(user => user.id === parseInt(id)) +} diff --git a/src/server.js b/src/server.js index 57d2f02..1f1fd27 100644 --- a/src/server.js +++ b/src/server.js @@ -15,6 +15,7 @@ const booksRouter = require("./routers/books"); // ADD ROUTERS TO APP +app.use("/users", usersRouter); app.use('/books', booksRouter) module.exports = app From 0a50ffd74390aa808fc6bc73cf65207fa4332d96 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:06:20 +0000 Subject: [PATCH 09/23] users get added --- src/routers/users.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index 484f142..106b1e6 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -6,3 +6,7 @@ const router = express.Router() const findUser = (id) => { return users.find(user => user.id === parseInt(id)) } + +router.get('/', (req, res) => { + res.json({ users }) +}) From b18c11df391e53cdebd93fc732dc5afbb769b86c Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:06:40 +0000 Subject: [PATCH 10/23] users post added --- src/routers/users.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index 106b1e6..9f633ca 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -10,3 +10,10 @@ const findUser = (id) => { router.get('/', (req, res) => { res.json({ users }) }) + +router.post('/', (req, res) => { + const body = req.body + const newUser = { id: users.length + 1, ...body } + users.push(newUser) + res.status(201).json({ user: newUser }) +}) From 985bc1d50ffd8997d31149502d012e65cef577bc Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:07:14 +0000 Subject: [PATCH 11/23] users get by id added --- src/routers/users.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index 9f633ca..fab7f95 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -17,3 +17,12 @@ router.post('/', (req, res) => { users.push(newUser) res.status(201).json({ user: newUser }) }) + +router.get('/:id', (req, res) => { + const user = findUser(req.params.id) + if (user) { + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From 64036593ecd43a127070886cb159b5cd9822712b Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:07:29 +0000 Subject: [PATCH 12/23] users delete by id added --- src/routers/users.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index fab7f95..388f4bb 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -26,3 +26,13 @@ router.get('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +router.delete('/:id', (req, res) => { + const user = findUser(req.params.id) + if (user) { + users.splice(users.indexOf(user), 1) + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From 8bbb62fd33602cf3c4a6594874be43ff4428df4c Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:08:13 +0000 Subject: [PATCH 13/23] users put added --- src/routers/users.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index 388f4bb..e625257 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -36,3 +36,13 @@ router.delete('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +router.put('/:id', (req, res) => { + const user = findUser(req.params.id) + if (user) { + Object.assign(user, req.body) + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From 7221507a08f4e6ad5754f662015dfe78f27a4fbd Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:08:23 +0000 Subject: [PATCH 14/23] exports --- src/routers/users.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routers/users.js b/src/routers/users.js index e625257..0f6a968 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -46,3 +46,5 @@ router.put('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +module.exports = router; \ No newline at end of file From 391185a873ce8466a1c712dfd9e3e129f70ae776 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:13:22 +0000 Subject: [PATCH 15/23] Added filmsRouter and a couple semicolons to server.js --- src/server.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/server.js b/src/server.js index 1f1fd27..af64346 100644 --- a/src/server.js +++ b/src/server.js @@ -12,10 +12,12 @@ 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('/books', booksRouter) +app.use('/books', booksRouter); +app.use('/films', filmsRouter); -module.exports = app +module.exports = app; From 02d1571b072d0740c98fe927ac3f14576c3ab177 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:16:30 +0000 Subject: [PATCH 16/23] films router setup --- src/routers/films.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..2939224 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,8 @@ +const { films } = require('../../data/index.js') + +const express = require('express') +const router = express.Router() + +const findFilm = (id) => { + return films.find(user => user.id === parseInt(id)) +} From 03a8ead19291cb56eee0f35af3340851e3a0cd14 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:17:58 +0000 Subject: [PATCH 17/23] film get added --- src/routers/films.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index 2939224..59c79be 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -6,3 +6,7 @@ const router = express.Router() const findFilm = (id) => { return films.find(user => user.id === parseInt(id)) } + +router.get('/', (req, res) => { + res.json({ films }) +}) From d0a778fce8c1402129720283d729eba24d61bd17 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:19:03 +0000 Subject: [PATCH 18/23] films post added --- src/routers/films.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index 59c79be..b05af29 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -10,3 +10,10 @@ const findFilm = (id) => { router.get('/', (req, res) => { res.json({ films }) }) + +router.post('/', (req, res) => { + const body = req.body + const newFilm = { id: films.length + 1, ...body } + films.push(newFilm) + res.status(201).json({ user: newFilm }) +}) From 5a7cb306cf0688f0c239373ad2bf99b565a4a848 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:19:23 +0000 Subject: [PATCH 19/23] films get by id added --- src/routers/films.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index b05af29..e62579b 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -17,3 +17,12 @@ router.post('/', (req, res) => { films.push(newFilm) res.status(201).json({ user: newFilm }) }) + +router.get('/:id', (req, res) => { + const user = findFilm(req.params.id) + if (user) { + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From ff28098f914b8378ae575b89ec1f5903ccc66501 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:19:40 +0000 Subject: [PATCH 20/23] films delete by id added --- src/routers/films.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index e62579b..1e844a6 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -26,3 +26,13 @@ router.get('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +router.delete('/:id', (req, res) => { + const user = findFilm(req.params.id) + if (user) { + films.splice(films.indexOf(user), 1) + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From 30dc5e901c5da44549dd627c3c9107e77385faf6 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:20:09 +0000 Subject: [PATCH 21/23] films put added --- src/routers/films.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index 1e844a6..0d65017 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -36,3 +36,13 @@ router.delete('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +router.put('/:id', (req, res) => { + const user = findFilm(req.params.id) + if (user) { + Object.assign(user, req.body) + res.json({ user }) + } else { + res.status(404).json({ error: 'user not found' }) + } +}) From 57368966de0186c9f26fec1161983621c85f2ce3 Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:20:25 +0000 Subject: [PATCH 22/23] exports --- src/routers/films.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routers/films.js b/src/routers/films.js index 0d65017..f2c7eb2 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -46,3 +46,5 @@ router.put('/:id', (req, res) => { res.status(404).json({ error: 'user not found' }) } }) + +module.exports = router; \ No newline at end of file From 299b27396a7db0b587e8e668b69fe0c443c9280b Mon Sep 17 00:00:00 2001 From: Radio58 Date: Fri, 2 Feb 2024 16:22:23 +0000 Subject: [PATCH 23/23] fixed naming --- src/routers/films.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/routers/films.js b/src/routers/films.js index f2c7eb2..6d9f3be 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -4,7 +4,7 @@ const express = require('express') const router = express.Router() const findFilm = (id) => { - return films.find(user => user.id === parseInt(id)) + return films.find(film => film.id === parseInt(id)) } router.get('/', (req, res) => { @@ -15,35 +15,35 @@ router.post('/', (req, res) => { const body = req.body const newFilm = { id: films.length + 1, ...body } films.push(newFilm) - res.status(201).json({ user: newFilm }) + res.status(201).json({ film: newFilm }) }) router.get('/:id', (req, res) => { - const user = findFilm(req.params.id) - if (user) { - res.json({ user }) + const film = findFilm(req.params.id) + if (film) { + res.json({ film }) } else { - res.status(404).json({ error: 'user not found' }) + res.status(404).json({ error: 'film not found' }) } }) router.delete('/:id', (req, res) => { - const user = findFilm(req.params.id) - if (user) { - films.splice(films.indexOf(user), 1) - res.json({ user }) + const film = findFilm(req.params.id) + if (film) { + films.splice(films.indexOf(film), 1) + res.json({ film }) } else { - res.status(404).json({ error: 'user not found' }) + res.status(404).json({ error: 'film not found' }) } }) router.put('/:id', (req, res) => { - const user = findFilm(req.params.id) - if (user) { - Object.assign(user, req.body) - res.json({ user }) + const film = findFilm(req.params.id) + if (film) { + Object.assign(film, req.body) + res.json({ film }) } else { - res.status(404).json({ error: 'user not found' }) + res.status(404).json({ error: 'film not found' }) } })