Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions src/controller/booksController.js
Original file line number Diff line number Diff line change
@@ -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 }
49 changes: 49 additions & 0 deletions src/controller/filmsContorller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
const { films } = require('../../data/index.js')

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})
}

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})
}

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 }
47 changes: 47 additions & 0 deletions src/controller/usersContorller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
const {users} = require('../../data/index.js')

const getAll = (req, res) => {
res.status(200).json({users})
}

const createUser = (req, res) => {
const {email} = req.body
const id = users[users.length-1].id + 1
const newUser = {id, email}
users.push(newUser)
res.status(201).json({user : newUser})
}

const getUserById = (req, res) => {
const id = Number(req.params.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!'})
}
const deletedUser = users.splice(userIndex, 1)
res.status(200).json({user : deletedUser[0]})
}

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 }
13 changes: 12 additions & 1 deletion src/routers/books.js
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions src/routers/films.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const express = require('express')
const router = express.Router()
const { getAll, createFilm, GetFilmById, deleteById, updateFilmById } = require('../controller/filmsContorller.js')

router.get('/', getAll )

router.post('/', createFilm)

router.get('/:id', GetFilmById)

router.delete('/:id', deleteById)

router.put('/:id', updateFilmById)

router.patch('/:id', updateFilmById)

module.exports = router
15 changes: 15 additions & 0 deletions src/routers/users.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
const express = require('express')
const router = express.Router()
const { getAll, createUser, getUserById, deleteUser, updateUser } = require('../controller/usersContorller.js')

router.get('/', getAll)

router.post('/', createUser)

router.get('/:id', getUserById)

router.delete('/:id', deleteUser)

router.put('/:id', updateUser)

module.exports = router
9 changes: 6 additions & 3 deletions src/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,12 @@ 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