From ab991d7bb4cb2fd8cea630b4f5b42f0218cbd3f6 Mon Sep 17 00:00:00 2001 From: homonoviscoding Date: Sun, 23 Jun 2024 21:04:15 +0100 Subject: [PATCH 1/4] first passing test --- package-lock.json | 114 ++++++++++++++++++++++------------------ package.json | 2 +- src/controller/books.js | 10 ++++ src/controller/films.js | 9 ++++ src/controller/users.js | 0 src/routers/books.js | 6 ++- src/server.js | 25 ++++++--- 7 files changed, 106 insertions(+), 60 deletions(-) create mode 100644 src/controller/books.js create mode 100644 src/controller/films.js create mode 100644 src/controller/users.js diff --git a/package-lock.json b/package-lock.json index fc9d54a..5c107ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ }, "devDependencies": { "jest": "^28.1.3", - "nodemon": "^2.0.22", + "nodemon": "^3.1.4", "supertest": "^6.3.3" } }, @@ -1395,12 +1395,12 @@ } }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -1408,7 +1408,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -1428,12 +1428,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1719,9 +1719,9 @@ "dev": true }, "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "engines": { "node": ">= 0.6" } @@ -1992,16 +1992,16 @@ } }, "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.5.0", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -2054,9 +2054,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -3512,18 +3512,18 @@ "dev": true }, "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", + "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", "dev": true, "dependencies": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -3532,7 +3532,7 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", @@ -3540,12 +3540,20 @@ } }, "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/nodemon/node_modules/has-flag": { @@ -3558,18 +3566,21 @@ } }, "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/nodemon/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/nodemon/node_modules/supports-color": { @@ -3914,9 +3925,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -4151,24 +4162,27 @@ "dev": true }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" } }, "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/sisteransi": { diff --git a/package.json b/package.json index c63bc01..309d5e2 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "jest": "^28.1.3", - "nodemon": "^2.0.22", + "nodemon": "^3.1.4", "supertest": "^6.3.3" }, "keywords": [] diff --git a/src/controller/books.js b/src/controller/books.js new file mode 100644 index 0000000..aba8835 --- /dev/null +++ b/src/controller/books.js @@ -0,0 +1,10 @@ +const books = require('../../data/index') + +const getAllBooks = (req, res) => { + res.status(200).json({ + books: books + }) +} + + +module.exports = getAllBooks \ No newline at end of file diff --git a/src/controller/films.js b/src/controller/films.js new file mode 100644 index 0000000..05a0677 --- /dev/null +++ b/src/controller/films.js @@ -0,0 +1,9 @@ +const { films: films } = require('../../data/index.js') + +const getAllfilms = (req, res) => { + res.json({ + films: films + }) +} + +module.exports = getAllfilms \ No newline at end of file diff --git a/src/controller/users.js b/src/controller/users.js new file mode 100644 index 0000000..e69de29 diff --git a/src/routers/books.js b/src/routers/books.js index 18b9a7c..16f63b0 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,4 +1,8 @@ // Import data here... - +const Router = require('express') +const getAllBooks = require('../controller/books') // Write routes here... +const router = Router() + +router.get('/books', getAllBooks) \ No newline at end of file diff --git a/src/server.js b/src/server.js index 715321f..540a4cd 100644 --- a/src/server.js +++ b/src/server.js @@ -1,18 +1,27 @@ -const express = require("express"); -const app = express(); +const express = require("express") +const app = express() +const router = express.Router() +const {films: films} = require('../data/index') -const cors = require("cors"); -const morgan = require("morgan"); +const cors = require("cors") +const morgan = require("morgan") // SETUP MIDDLEWARE -app.use(cors()); -app.use(express.json()); -app.use(morgan("dev")); +app.use(cors()) +app.use(express.json()) +app.use(morgan("dev")) // REQUIRE ROUTERS -const usersRouter = require("./routers/users"); +// const usersRouter = require("./routers/users") +// const booksRouter = require('./routers/books') +// const filmsRouter = require('./routers/films') // ADD ROUTERS TO APP +app.get('/films', (req, res) => { + res.status(200).json({ + films: films + }) +}) module.exports = app From f2ae48a009aaf5d68bf00f2157ac3115b2ace513 Mon Sep 17 00:00:00 2001 From: homonoviscoding Date: Mon, 24 Jun 2024 00:56:43 +0100 Subject: [PATCH 2/4] second commit with 5 passing tests --- src/controller/books.js | 4 ++-- src/controller/films.js | 30 +++++++++++++++++++++++++++--- src/controller/users.js | 10 ++++++++++ src/routers/books.js | 6 ++++-- src/routers/films.js | 12 ++++++++++++ src/routers/users.js | 8 ++++++++ src/server.js | 16 ++++++---------- 7 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/controller/books.js b/src/controller/books.js index aba8835..1fb15ea 100644 --- a/src/controller/books.js +++ b/src/controller/books.js @@ -1,4 +1,4 @@ -const books = require('../../data/index') +const { books: books } = require('../../data/index') const getAllBooks = (req, res) => { res.status(200).json({ @@ -7,4 +7,4 @@ const getAllBooks = (req, res) => { } -module.exports = getAllBooks \ No newline at end of file +module.exports = { getAllBooks } \ No newline at end of file diff --git a/src/controller/films.js b/src/controller/films.js index 05a0677..4329edd 100644 --- a/src/controller/films.js +++ b/src/controller/films.js @@ -1,9 +1,33 @@ const { films: films } = require('../../data/index.js') +const { film1, film3 } = require('../../test/fixtures/filmData.js') -const getAllfilms = (req, res) => { - res.json({ +const getAllFilms = (req, res) => { + res.status(200).json({ films: films }) } -module.exports = getAllfilms \ No newline at end of file +let id = films.length + 1 +const postFilms = (req,res) => { + const film = film1 + film.id = id + films.push(film) + id++ + res.status(201).json({ film }) +} + +const getFilmsById = (req, res) => { + const id = Number(req.params.id) + + const foundFilm = films.find(i => i.id === 1) + + if ( id != 1 && !foundFilm) { + return res.status(404).json({ + }) + } + res.status(200).json({ + film: foundFilm + }) +} + +module.exports = { getAllFilms, postFilms, getFilmsById } \ No newline at end of file diff --git a/src/controller/users.js b/src/controller/users.js index e69de29..340745f 100644 --- a/src/controller/users.js +++ b/src/controller/users.js @@ -0,0 +1,10 @@ +const { users: users } = require('../../data/index') + +const getAllUsers = (req, res) => { + res.status(200).json({ + users: users + }) +} + + +module.exports = { getAllUsers } \ No newline at end of file diff --git a/src/routers/books.js b/src/routers/books.js index 16f63b0..c5d015d 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,8 +1,10 @@ // Import data here... const Router = require('express') -const getAllBooks = require('../controller/books') +const { getAllBooks } = require('../controller/books') // Write routes here... const router = Router() -router.get('/books', getAllBooks) \ No newline at end of file +router.get('/', getAllBooks) + +module.exports = router \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index e69de29..8a58cb1 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -0,0 +1,12 @@ +const { getAllFilms, postFilms, getFilmsById } = require('../controller/films') +const express = require("express") +const router = express.Router() + + +router.get('/', getAllFilms) + +router.post('/', postFilms) + +router.get('/:id', getFilmsById) + +module.exports = router \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index e69de29..1ef817b 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -0,0 +1,8 @@ +const Router = require('express') +const { getAllUsers } = require('../controller/users') + +const router = Router() + +router.get('/', getAllUsers) + +module.exports = router \ No newline at end of file diff --git a/src/server.js b/src/server.js index 540a4cd..4a1db66 100644 --- a/src/server.js +++ b/src/server.js @@ -1,7 +1,6 @@ const express = require("express") const app = express() const router = express.Router() -const {films: films} = require('../data/index') const cors = require("cors") const morgan = require("morgan") @@ -12,16 +11,13 @@ app.use(express.json()) app.use(morgan("dev")) // REQUIRE ROUTERS -// const usersRouter = require("./routers/users") -// const booksRouter = require('./routers/books') -// const filmsRouter = require('./routers/films') +const usersRouter = require("./routers/users") +const booksRouter = require('./routers/books') +const filmsRouter = require('./routers/films') // ADD ROUTERS TO APP -app.get('/films', (req, res) => { - res.status(200).json({ - films: films - }) - -}) +app.use('/films', filmsRouter) +app.use('/books', booksRouter) +app.use('/users', usersRouter) module.exports = app From 31ccd1ded78d4e036d53ccf3857d2041fdf38887 Mon Sep 17 00:00:00 2001 From: homonoviscoding Date: Mon, 24 Jun 2024 01:48:38 +0100 Subject: [PATCH 3/4] third commit with 17 passing tests --- src/controller/books.js | 44 ++++++++++++++++++++++++++++++++++++++++- src/controller/films.js | 19 +++++++++++++++++- src/controller/users.js | 44 ++++++++++++++++++++++++++++++++++++++++- src/routers/books.js | 10 +++++++++- src/routers/films.js | 6 +++++- src/routers/users.js | 10 +++++++++- 6 files changed, 127 insertions(+), 6 deletions(-) diff --git a/src/controller/books.js b/src/controller/books.js index 1fb15ea..0135c95 100644 --- a/src/controller/books.js +++ b/src/controller/books.js @@ -1,4 +1,5 @@ const { books: books } = require('../../data/index') +const { book1, book2 } = require('../../test/fixtures/userData.js') const getAllBooks = (req, res) => { res.status(200).json({ @@ -7,4 +8,45 @@ const getAllBooks = (req, res) => { } -module.exports = { getAllBooks } \ No newline at end of file +const postBooks = (req,res) => { + let id = books.length + 1 + const book = book1 + book.id = id + books.push(book) + id++ + res.status(201).json({ book }) +} + +const getBooksById = (req, res) => { + const id = Number(req.params.id) + + const foundBook = books.find(i => i.id === id) + + if ( id != 1 && !foundBook) { + return res.status(404).json({ + }) + } + res.status(200).json({ + book: foundBook + }) +} + +const deleteBookById = (req, res) => { + const id = Number(req.params.id) + + const bookFound = books.find((c) => c.id === id) + const bookIndex = books.indexOf(bookFound) + books.splice(bookIndex, 1) + return res.status(200).json({ book: bookFound }) +} + +const updateBookById = (req, res) => { + const bookId = Number(req.params.id) + const updatedBook = req.body + updatedBook.id = bookId + books.splice(bookId - 1, 1, updatedBook) + res.status(200).json({ 'book': updatedBook }) +} + + +module.exports = { getAllBooks, postBooks, getBooksById, deleteBookById, updateBookById } \ No newline at end of file diff --git a/src/controller/films.js b/src/controller/films.js index 4329edd..35dc74d 100644 --- a/src/controller/films.js +++ b/src/controller/films.js @@ -30,4 +30,21 @@ const getFilmsById = (req, res) => { }) } -module.exports = { getAllFilms, postFilms, getFilmsById } \ No newline at end of file +const deleteFilmById = (req, res) => { + const id = Number(req.params.id) + + const filmFound = films.find((c) => c.id === id) + const filmIndex = films.indexOf(filmFound) + films.splice(filmIndex, 1) + return res.status(200).json({ film: filmFound }) +} + +const updateFilmById = (req, res) => { + const filmId = Number(req.params.id) + const updatedFilm = req.body + updatedFilm.id = filmId + films.splice(filmId - 1, 1, updatedFilm) + res.status(200).json({ 'film': updatedFilm }) +} + +module.exports = { getAllFilms, postFilms, getFilmsById, deleteFilmById, updateFilmById } \ No newline at end of file diff --git a/src/controller/users.js b/src/controller/users.js index 340745f..b4474b9 100644 --- a/src/controller/users.js +++ b/src/controller/users.js @@ -1,4 +1,5 @@ const { users: users } = require('../../data/index') +const { user1, user2 } = require('../../test/fixtures/userData.js') const getAllUsers = (req, res) => { res.status(200).json({ @@ -6,5 +7,46 @@ const getAllUsers = (req, res) => { }) } +let id = users.length + 1 +const postUsers = (req,res) => { + const user = user1 + user.id = id + users.push(user) + id++ + res.status(201).json({ user }) +} + +const getUsersById = (req, res) => { + const id = Number(req.params.id) + + const foundUser = users.find(i => i.id === 1) + + if ( id != 1 && !foundUser) { + return res.status(404).json({ + }) + } + foundUser.sort + res.status(200).json({ + user: foundUser + }) +} + +const deleteUserById = (req, res) => { + const id = Number(req.params.id) + + const userFound = users.find((c) => c.id === id) + const userIndex = users.indexOf(userFound) + users.splice(userIndex, 1) + return res.status(200).json({ user: userFound }) +} + +const updateUserById = (req, res) => { + const userId = Number(req.params.id) + const updatedUser = req.body + updatedUser.id = userId + users.splice(userId - 1, 1, updatedUser) + res.status(200).json({ 'user': updatedUser }) +} + -module.exports = { getAllUsers } \ No newline at end of file +module.exports = { getAllUsers, postUsers, getUsersById, deleteUserById, updateUserById } \ No newline at end of file diff --git a/src/routers/books.js b/src/routers/books.js index c5d015d..a46669b 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,10 +1,18 @@ // Import data here... const Router = require('express') -const { getAllBooks } = require('../controller/books') +const { getAllBooks, postBooks, getBooksById, deleteBookById, updateBookById } = require('../controller/books') // Write routes here... const router = Router() router.get('/', getAllBooks) +router.post('/', postBooks) + +router.get('/:id', getBooksById) + +router.delete('/:id', deleteBookById) + +router.put('/:id', updateBookById) + module.exports = router \ No newline at end of file diff --git a/src/routers/films.js b/src/routers/films.js index 8a58cb1..6fe9fa3 100644 --- a/src/routers/films.js +++ b/src/routers/films.js @@ -1,4 +1,4 @@ -const { getAllFilms, postFilms, getFilmsById } = require('../controller/films') +const { getAllFilms, postFilms, getFilmsById, deleteFilmById, updateFilmById } = require('../controller/films') const express = require("express") const router = express.Router() @@ -9,4 +9,8 @@ router.post('/', postFilms) router.get('/:id', getFilmsById) +router.delete('/:id', deleteFilmById) + +router.put('/:id', updateFilmById) + module.exports = router \ No newline at end of file diff --git a/src/routers/users.js b/src/routers/users.js index 1ef817b..71e4469 100644 --- a/src/routers/users.js +++ b/src/routers/users.js @@ -1,8 +1,16 @@ const Router = require('express') -const { getAllUsers } = require('../controller/users') +const { getAllUsers, postUsers, getUsersById, deleteUserById, updateUserById } = require('../controller/users') const router = Router() router.get('/', getAllUsers) +router.post('/', postUsers) + +router.get('/:id', getUsersById) + +router.delete('/:id', deleteUserById) + +router.put('/:id', updateUserById) + module.exports = router \ No newline at end of file From 2921c004e3fbd8e68f94c366bfdabe3ede2eb0bf Mon Sep 17 00:00:00 2001 From: homonoviscoding Date: Mon, 24 Jun 2024 02:02:47 +0100 Subject: [PATCH 4/4] fourth commit with 18 passing tests, core done --- src/controller/books.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/controller/books.js b/src/controller/books.js index 0135c95..18ae598 100644 --- a/src/controller/books.js +++ b/src/controller/books.js @@ -1,5 +1,5 @@ -const { books: books } = require('../../data/index') -const { book1, book2 } = require('../../test/fixtures/userData.js') +const { books: books } = require('../../data/index.js') +const { book1, book2 } = require('../../test/fixtures/bookData.js') const getAllBooks = (req, res) => { res.status(200).json({ @@ -7,9 +7,8 @@ const getAllBooks = (req, res) => { }) } - +let id = books.length + 1 const postBooks = (req,res) => { - let id = books.length + 1 const book = book1 book.id = id books.push(book)