From 20b1029a5fd77277f09d5bba6d15511967364f8b Mon Sep 17 00:00:00 2001 From: Farshad Date: Thu, 20 Jun 2024 17:32:55 +0200 Subject: [PATCH 1/9] get /endpoint done --- src/routers/controller/usersContorller.js | 7 +++++++ src/routers/users.js | 9 +++++++++ src/server.js | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/routers/controller/usersContorller.js diff --git a/src/routers/controller/usersContorller.js b/src/routers/controller/usersContorller.js new file mode 100644 index 0000000..b903ab5 --- /dev/null +++ b/src/routers/controller/usersContorller.js @@ -0,0 +1,7 @@ +const {users} = require('../../../data/index.js') +console.log(users) +const getAll = (req, res) => { + res.status(200).json({users}) +} + +module.exports = { getAll } \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..9484b19 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,9 @@ +const express = require('express') +const router = express.Router() +const { getAll } = require('./controller/usersContorller.js') + +router.get('/', getAll) + + + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..b7f4224 100644 --- a/src/server.js +++ b/src/server.js @@ -10,8 +10,9 @@ app.use(express.json()); app.use(morgan("dev")); // REQUIRE ROUTERS -const usersRouter = require("./routers/users"); +const usersRouter = require("./routers/users.js"); +app.use('/users', usersRouter) // ADD ROUTERS TO APP From e610507cbb98cf1ba1f219c4cb298fd300a084eb Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 17:16:58 +0200 Subject: [PATCH 2/9] findUserById Done --- src/controller/usersContorller.js | 27 +++++++++++++++++++++++ src/routers/controller/usersContorller.js | 7 ------ src/routers/users.js | 4 +++- 3 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 src/controller/usersContorller.js delete mode 100644 src/routers/controller/usersContorller.js diff --git a/src/controller/usersContorller.js b/src/controller/usersContorller.js new file mode 100644 index 0000000..e72a6bf --- /dev/null +++ b/src/controller/usersContorller.js @@ -0,0 +1,27 @@ +const {users} = require('../../data/index.js') +// const { param } = require('../routers/users.js') + +const getAll = (req, res) => { + res.status(200).json({users}) +} + +const createUser = (req, res) => { + const newUser = req.body + const id = users[users.length-1].id + 1 + newUser.id = id + users.push(newUser) + res.status(201).json({user : newUser}) +} + +const getUserById = (req, res) => { + const id = Number(req.params.id) + console.log(id) + const userIndex = users.findIndex(u => u.id === id) + if(userIndex === -1){ + return res.status(404).json({message : 'Didnt find the user!'}) + } + const deletedUser = users.splice(userIndex, 1) + res.status(200).json({user : deletedUser[0]}) +} + +module.exports = { getAll, createUser, getUserById } \ No newline at end of file diff --git a/src/routers/controller/usersContorller.js b/src/routers/controller/usersContorller.js deleted file mode 100644 index b903ab5..0000000 --- a/src/routers/controller/usersContorller.js +++ /dev/null @@ -1,7 +0,0 @@ -const {users} = require('../../../data/index.js') -console.log(users) -const getAll = (req, res) => { - res.status(200).json({users}) -} - -module.exports = { getAll } \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index 9484b19..0ce2c17 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -1,9 +1,11 @@ const express = require('express') const router = express.Router() -const { getAll } = require('./controller/usersContorller.js') +const { getAll, createUser, getUserById } = require('../controller/usersContorller.js') router.get('/', getAll) +router.post('/', createUser) +router.get('/:id', getUserById) module.exports = router \ No newline at end of file From 68af27c8569d4a6eb1b20463ebc63803768da605 Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 17:32:35 +0200 Subject: [PATCH 3/9] deleteUser Added, getUserById Updated --- src/controller/usersContorller.js | 13 +++++++++++-- src/routers/users.js | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/controller/usersContorller.js b/src/controller/usersContorller.js index e72a6bf..cb38f80 100644 --- a/src/controller/usersContorller.js +++ b/src/controller/usersContorller.js @@ -15,7 +15,16 @@ const createUser = (req, res) => { const getUserById = (req, res) => { const id = Number(req.params.id) - console.log(id) + const found = users.find(u => u.id === id) + console.log(found) + if(found === undefined){ + return res.status(404).json({message : 'Didnt find the user!'}) + } + res.status(200).json({user:found}) +} + +const deleteUser = (req, res) => { + const id = Number(req.params.id) const userIndex = users.findIndex(u => u.id === id) if(userIndex === -1){ return res.status(404).json({message : 'Didnt find the user!'}) @@ -24,4 +33,4 @@ const getUserById = (req, res) => { res.status(200).json({user : deletedUser[0]}) } -module.exports = { getAll, createUser, getUserById } \ No newline at end of file +module.exports = { getAll, createUser, getUserById, deleteUser } \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index 0ce2c17..53c9698 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -1,6 +1,6 @@ const express = require('express') const router = express.Router() -const { getAll, createUser, getUserById } = require('../controller/usersContorller.js') +const { getAll, createUser, getUserById, deleteUser } = require('../controller/usersContorller.js') router.get('/', getAll) @@ -8,4 +8,6 @@ router.post('/', createUser) router.get('/:id', getUserById) +router.delete('/:id', deleteUser) + module.exports = router \ No newline at end of file From 233560e44191b7e5bc8bca507663ab1632b589e6 Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 18:27:32 +0200 Subject: [PATCH 4/9] users Tests Done --- src/controller/usersContorller.js | 14 +++++++++++++- src/routers/users.js | 4 +++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/controller/usersContorller.js b/src/controller/usersContorller.js index cb38f80..0d76510 100644 --- a/src/controller/usersContorller.js +++ b/src/controller/usersContorller.js @@ -33,4 +33,16 @@ const deleteUser = (req, res) => { res.status(200).json({user : deletedUser[0]}) } -module.exports = { getAll, createUser, getUserById, deleteUser } \ No newline at end of file +const updateUser = (req, res) => { + const id = Number(req.params.id) + const { email } = req.body + const userIndex = users.findIndex(u => u.id === id) + if(userIndex === -1){ + return res.status(404).json({message : 'Didnt find the user!'}) + } + users[userIndex].email = email + res.status(200).json({user : users[userIndex]}) +} + + +module.exports = { getAll, createUser, getUserById, deleteUser, updateUser } \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index 53c9698..7b54ad0 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -1,6 +1,6 @@ const express = require('express') const router = express.Router() -const { getAll, createUser, getUserById, deleteUser } = require('../controller/usersContorller.js') +const { getAll, createUser, getUserById, deleteUser, updateUser } = require('../controller/usersContorller.js') router.get('/', getAll) @@ -10,4 +10,6 @@ router.get('/:id', getUserById) router.delete('/:id', deleteUser) +router.put('/:id', updateUser) + module.exports = router \ No newline at end of file From 1c5bbe8e19a60a0d38550e4efeee5425cbf64ede Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 18:40:05 +0200 Subject: [PATCH 5/9] getAll films Done --- src/controller/filmsContorller.js | 9 +++++++++ src/controller/usersContorller.js | 1 - src/routers/films.js | 7 +++++++ src/server.js | 5 +++-- 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 src/controller/filmsContorller.js diff --git a/src/controller/filmsContorller.js b/src/controller/filmsContorller.js new file mode 100644 index 0000000..2dba26a --- /dev/null +++ b/src/controller/filmsContorller.js @@ -0,0 +1,9 @@ +const { films } = require('../../data/index.js') +console.log(films) + +const getAll = (req, res) => { + console.log('test') + res.status(200).json({ films }) +} + +module.exports = { getAll } \ No newline at end of file diff --git a/src/controller/usersContorller.js b/src/controller/usersContorller.js index 0d76510..dcd6df7 100644 --- a/src/controller/usersContorller.js +++ b/src/controller/usersContorller.js @@ -1,5 +1,4 @@ const {users} = require('../../data/index.js') -// const { param } = require('../routers/users.js') const getAll = (req, res) => { res.status(200).json({users}) diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..4d18c3b 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,7 @@ +const express = require('express') +const router = express.Router() +const { getAll } = require('../controller/filmsContorller.js') + +router.get('/', getAll ) + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index b7f4224..de16d71 100644 --- a/src/server.js +++ b/src/server.js @@ -11,9 +11,10 @@ app.use(morgan("dev")); // REQUIRE ROUTERS const usersRouter = require("./routers/users.js"); +const filmsRouter = require("./routers/films.js") -app.use('/users', usersRouter) // ADD ROUTERS TO APP - +app.use('/users', usersRouter) +app.use('/films', filmsRouter) module.exports = app From 96fbcfbab70a51896e8504675567fcb8c240db6d Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 18:47:30 +0200 Subject: [PATCH 6/9] createUser Updated --- src/controller/filmsContorller.js | 5 ++++- src/controller/usersContorller.js | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/controller/filmsContorller.js b/src/controller/filmsContorller.js index 2dba26a..242c0f2 100644 --- a/src/controller/filmsContorller.js +++ b/src/controller/filmsContorller.js @@ -2,8 +2,11 @@ const { films } = require('../../data/index.js') console.log(films) const getAll = (req, res) => { - console.log('test') res.status(200).json({ films }) } +const createFilm = (req, res) => { + +} + module.exports = { getAll } \ No newline at end of file diff --git a/src/controller/usersContorller.js b/src/controller/usersContorller.js index dcd6df7..ce04636 100644 --- a/src/controller/usersContorller.js +++ b/src/controller/usersContorller.js @@ -5,9 +5,9 @@ const getAll = (req, res) => { } const createUser = (req, res) => { - const newUser = req.body + const {email} = req.body const id = users[users.length-1].id + 1 - newUser.id = id + const newUser = {id, email} users.push(newUser) res.status(201).json({user : newUser}) } From 84263926f83027fef5a43c5fe3b9fc4f6a7298cd Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 18:53:38 +0200 Subject: [PATCH 7/9] createFilm Done --- src/controller/filmsContorller.js | 10 +++++++--- src/routers/films.js | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/controller/filmsContorller.js b/src/controller/filmsContorller.js index 242c0f2..a2b53ee 100644 --- a/src/controller/filmsContorller.js +++ b/src/controller/filmsContorller.js @@ -1,12 +1,16 @@ const { films } = require('../../data/index.js') -console.log(films) const getAll = (req, res) => { res.status(200).json({ films }) } const createFilm = (req, res) => { - + const {title, director} = req.body + const id = films[films.length-1].id + 1 + + const newFilm = {id, title, director} + films.push(newFilm) + res.status(201).json({film : newFilm}) } -module.exports = { getAll } \ No newline at end of file +module.exports = { getAll, createFilm } \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index 4d18c3b..9eeb162 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -1,7 +1,8 @@ const express = require('express') const router = express.Router() -const { getAll } = require('../controller/filmsContorller.js') +const { getAll, createFilm } = require('../controller/filmsContorller.js') router.get('/', getAll ) +router.post('/', createFilm) module.exports = router \ No newline at end of file From 6c9f514575be1c87d53ddca64b2170e373bb1996 Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 18:58:24 +0200 Subject: [PATCH 8/9] getFilmById Done --- src/controller/filmsContorller.js | 13 ++++++++++++- src/routers/films.js | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/controller/filmsContorller.js b/src/controller/filmsContorller.js index a2b53ee..bd4df82 100644 --- a/src/controller/filmsContorller.js +++ b/src/controller/filmsContorller.js @@ -13,4 +13,15 @@ const createFilm = (req, res) => { res.status(201).json({film : newFilm}) } -module.exports = { getAll, createFilm } \ No newline at end of file +const GetFilmById = (req, res) => { + const id = Number(req.params.id) + const found = films.find(f => f.id === id) + + if(found === undefined) { + return res.status(404).json({mesasage : "Didnt find the Film!"}) + } + + res.status(200).json({film : found}) +} + +module.exports = { getAll, createFilm, GetFilmById } \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index 9eeb162..49aca12 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -1,8 +1,10 @@ const express = require('express') const router = express.Router() -const { getAll, createFilm } = require('../controller/filmsContorller.js') +const { getAll, createFilm, GetFilmById } = require('../controller/filmsContorller.js') router.get('/', getAll ) router.post('/', createFilm) + +router.get('/:id' , GetFilmById) module.exports = router \ No newline at end of file From 26574c46aa67a532e66cafcac5e614f0b89484b2 Mon Sep 17 00:00:00 2001 From: Farshad Date: Fri, 21 Jun 2024 19:44:15 +0200 Subject: [PATCH 9/9] core criteria Done --- src/controller/booksController.js | 50 +++++++++++++++++++++++++++++++ src/controller/filmsContorller.js | 26 ++++++++++++++-- src/routers/books.js | 13 +++++++- src/routers/films.js | 11 +++++-- src/server.js | 3 +- 5 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 src/controller/booksController.js diff --git a/src/controller/booksController.js b/src/controller/booksController.js new file mode 100644 index 0000000..2c0cf1e --- /dev/null +++ b/src/controller/booksController.js @@ -0,0 +1,50 @@ +const { books } = require('../../data/index.js') + +const getAll = (req, res) => { + res.status(200).json({books}) +} + +const createBook = (req, res) => { + const {title, type, author} = req.body + const id = books[books.length-1].id + 1 + + const newBook = {id, title, type, author} + books.push(newBook) + res.status(201).json({book : newBook}) +} + +const GetBookById = (req, res) => { + const id = Number(req.params.id) + const found = books.find(b => b.id === id) + + if(found === undefined) { + return res.status(404).json({mesasage : "Didnt find the Book!"}) + } + res.status(200).json({book : found}) +} + +const deleteById = (req, res) => { + const id = Number(req.params.id) + const bookIndex = books.findIndex(b => b.id === id) + + if(bookIndex === -1) { + return res.status(404).json({message : 'The Book dose not exist!'}) + } + const deletedBook = books.splice(bookIndex, 1) + res.status(200).json({book : deletedBook[0]}) +} + +const updateBookById = (req, res) => { + const id = Number(req.params.id) + const {title, type, author} = req.body + const bookIndex = books.findIndex(f => f.id === id) + + if(bookIndex === -1) { + return res.status(404).json({message : 'The Book dose not exist!'}) + } + books[bookIndex] = {id, title, type, author} + res.status(200).json({book : books[bookIndex]}) +} + + +module.exports = { getAll, createBook, GetBookById, deleteById, updateBookById } \ No newline at end of file diff --git a/src/controller/filmsContorller.js b/src/controller/filmsContorller.js index bd4df82..57945dc 100644 --- a/src/controller/filmsContorller.js +++ b/src/controller/filmsContorller.js @@ -20,8 +20,30 @@ const GetFilmById = (req, res) => { if(found === undefined) { return res.status(404).json({mesasage : "Didnt find the Film!"}) } - res.status(200).json({film : found}) } -module.exports = { getAll, createFilm, GetFilmById } \ No newline at end of file +const deleteById = (req, res) => { + const id = Number(req.params.id) + const filmIndex = films.findIndex(f => f.id === id) + + if(filmIndex === -1) { + return res.status(404).json({message : 'The film dose not exist!'}) + } + const deletedFilm = films.splice(filmIndex, 1) + res.status(200).json({film : deletedFilm[0]}) +} + +const updateFilmById = (req, res) => { + const id = Number(req.params.id) + const {title, director} = req.body + const filmIndex = films.findIndex(f => f.id === id) + + if(filmIndex === -1) { + return res.status(404).json({message : 'The film dose not exist!'}) + } + films[filmIndex] = {id, title, director} + res.status(200).json({film : films[filmIndex]}) +} + +module.exports = { getAll, createFilm, GetFilmById, deleteById, updateFilmById } \ No newline at end of file diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..b71d88f 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 { getAll, createBook, GetBookById, deleteById, updateBookById } = require('../controller/booksController.js') +router.get('/', getAll) +router.post('/', createBook) -// Write routes here... +router.get('/:id', GetBookById) + +router.delete('/:id', deleteById) + +router.put('/:id', updateBookById) + +module.exports = router diff --git a/src/routers/films.js b/src/routers/films.js index 49aca12..18e29fc 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -1,10 +1,17 @@ const express = require('express') const router = express.Router() -const { getAll, createFilm, GetFilmById } = require('../controller/filmsContorller.js') +const { getAll, createFilm, GetFilmById, deleteById, updateFilmById } = require('../controller/filmsContorller.js') router.get('/', getAll ) router.post('/', createFilm) -router.get('/:id' , GetFilmById) +router.get('/:id', GetFilmById) + +router.delete('/:id', deleteById) + +router.put('/:id', updateFilmById) + +router.patch('/:id', updateFilmById) + module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index de16d71..e65d69e 100644 --- a/src/server.js +++ b/src/server.js @@ -12,9 +12,10 @@ app.use(morgan("dev")); // REQUIRE ROUTERS 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