From b3ac8fbfc5b2a184159753a70dcac7d5c41649fa Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Thu, 11 Jan 2024 02:09:56 +0100 Subject: [PATCH 1/6] added get all books --- src/routers/books.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routers/books.js b/src/routers/books.js index 1551dd87..08d6ff5f 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -3,6 +3,8 @@ const router = express.Router() const db = require("../../db"); router.get('/', async (req, res) => { + const books = await db.query('SELECT * FROM books') + res.json({ books: books.rows}) }) From 8e63db8b3729f65052a5d9ef67c7167d994e1910 Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Mon, 15 Jan 2024 00:54:39 +0100 Subject: [PATCH 2/6] added get,post and get req by id --- src/routers/books.js | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/routers/books.js b/src/routers/books.js index 08d6ff5f..57bfb6a1 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -1,11 +1,27 @@ -const express = require('express') -const router = express.Router() +const express = require("express"); +const router = express.Router(); const db = require("../../db"); -router.get('/', async (req, res) => { - const books = await db.query('SELECT * FROM books') - res.json({ books: books.rows}) +router.get("/", async (req, res) => { + const books = await db.query("SELECT * FROM books"); + console.group(books); + res.json({ books: books.rows }); +}); -}) +router.get("/:id", async (req, res) => { + const { id } = req.params; + const result = await db.query(`SELECT * FROM books WHERE id = $1`, [id]); + res.json({ book: result.rows[0] }); +}); -module.exports = router +router.post("/", async (req, res) => { + const { title, type, author, topic, publication_date, pages } = req.body; + + const newBook = await db.query( + "INSERT INTO books (title,type,author,topic,publication_date,pages) VALUES ($1,$2,$3,$4,$5,$6) RETURNING *", + [title, type, author, topic, publication_date, pages ] + ); + + res.status(201).json({ book: newBook.rows[0] }); +}); +module.exports = router; From 781bb74a66c70640357d2c34f2b1ff80aa61749c Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Mon, 15 Jan 2024 01:54:55 +0100 Subject: [PATCH 3/6] added delete req --- src/routers/books.js | 28 ++++++++++++++++++++++++---- src/routers/pets.js | 6 ++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/routers/pets.js diff --git a/src/routers/books.js b/src/routers/books.js index 57bfb6a1..4c5c2932 100644 --- a/src/routers/books.js +++ b/src/routers/books.js @@ -4,13 +4,12 @@ const db = require("../../db"); router.get("/", async (req, res) => { const books = await db.query("SELECT * FROM books"); - console.group(books); res.json({ books: books.rows }); }); router.get("/:id", async (req, res) => { const { id } = req.params; - const result = await db.query(`SELECT * FROM books WHERE id = $1`, [id]); + const result = await db.query("SELECT * FROM books WHERE id = $1", [id]); res.json({ book: result.rows[0] }); }); @@ -18,10 +17,31 @@ router.post("/", async (req, res) => { const { title, type, author, topic, publication_date, pages } = req.body; const newBook = await db.query( - "INSERT INTO books (title,type,author,topic,publication_date,pages) VALUES ($1,$2,$3,$4,$5,$6) RETURNING *", - [title, type, author, topic, publication_date, pages ] + "INSERT INTO books ( title ,type , author , topic , publication_date , pages ) VALUES ( $1 , $2 , $3 , $4 , $5 , $6 ) RETURNING *", + [title, type, author, topic, publication_date, pages] ); res.status(201).json({ book: newBook.rows[0] }); }); + +router.put("/:id", async (req, res) => { + const { id } = req.params; + const { title, type, author, topic, publication_date, pages } = req.body; + + const result = await db.query( + "UPDATE books SET title = $2,type = $3, author = $4,topic = $5 , publication_date = $6,pages = $7 WHERE id = $1 RETURNING *", + [id, title, type, author, topic, publication_date, pages] + ); + res.status(201).json({ book: result.rows[0] }); +}); + +router.delete("/:id", async (req, res) => { + const { id } = req.params; + const deleteBook = await db.query( + "DELETE FROM books WHERE id = $1 RETURNING *", + [id] + ); + res.status(201).json({ book: deleteBook.rows[0] }); +}); + module.exports = router; diff --git a/src/routers/pets.js b/src/routers/pets.js new file mode 100644 index 00000000..999c8e44 --- /dev/null +++ b/src/routers/pets.js @@ -0,0 +1,6 @@ +const express = require("express"); +const router = express.Router(); +const db = require("../../db"); + + +module.exports = router; \ No newline at end of file From 1175b91265ad11a16abb38d4f17e1883568836a1 Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Mon, 15 Jan 2024 02:02:30 +0100 Subject: [PATCH 4/6] added get req for pets --- src/routers/pets.js | 4 ++++ src/server.js | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/routers/pets.js b/src/routers/pets.js index 999c8e44..22f4d9c9 100644 --- a/src/routers/pets.js +++ b/src/routers/pets.js @@ -2,5 +2,9 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); +router.get('/', async (req,res)=>{ + const pets = await db.query('SELECT * FROM pets') + res.json({pets: pets.rows}) +}) module.exports = router; \ No newline at end of file diff --git a/src/server.js b/src/server.js index dac55e5d..2ea464a7 100644 --- a/src/server.js +++ b/src/server.js @@ -10,7 +10,11 @@ app.use(express.json()); //TODO: Implement books and pets APIs using Express Modular Routers const booksRouter = require('./routers/books.js') +const petsRouter = require('./routers/pets.js') app.use('/books', booksRouter) +app.use('/pets', petsRouter) + + module.exports = app From fb302b5864b6b51bbb53795bf6b7dac1d98acff9 Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Mon, 15 Jan 2024 02:03:57 +0100 Subject: [PATCH 5/6] added get req by id --- src/routers/pets.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/routers/pets.js b/src/routers/pets.js index 22f4d9c9..fbb9c212 100644 --- a/src/routers/pets.js +++ b/src/routers/pets.js @@ -2,9 +2,15 @@ const express = require("express"); const router = express.Router(); const db = require("../../db"); -router.get('/', async (req,res)=>{ - const pets = await db.query('SELECT * FROM pets') - res.json({pets: pets.rows}) -}) +router.get("/", async (req, res) => { + const pets = await db.query("SELECT * FROM pets"); + res.json({ pets: pets.rows }); +}); -module.exports = router; \ No newline at end of file +router.get("/:id", async (req, res) => { + const { id } = req.params; + const result = await db.query("SELECT * FROM pets WHERE id = $1", [id]); + res.json({ pet: result.rows[0] }); +}); + +module.exports = router; From 0418f25b43dd0f41301b21b49680474f1576c796 Mon Sep 17 00:00:00 2001 From: aayushlama4008 Date: Mon, 15 Jan 2024 02:07:24 +0100 Subject: [PATCH 6/6] added put,delete,post req for pets --- src/routers/pets.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/routers/pets.js b/src/routers/pets.js index fbb9c212..093656c0 100644 --- a/src/routers/pets.js +++ b/src/routers/pets.js @@ -13,4 +13,36 @@ router.get("/:id", async (req, res) => { res.json({ pet: result.rows[0] }); }); +router.post("/", async (req, res) => { + const { name, age, type, breed, has_microchip } = req.body; + + const newpet = await db.query( + "INSERT INTO pets (name, age, type, breed, has_microchip) VALUES ($1, $2, $3, $4, $5) RETURNING *", + [name, age, type, breed, has_microchip] + ); + res.status(201).json({ pet: newpet.rows[0] }); +}); + +router.put("/:id", async (req, res) => { + const { id } = req.params; + const { name, age, type, breed, has_microchip } = req.body; + + const updatedpet = await db.query( + "UPDATE pets SET name = $2, age = $3, type = $4, breed = $5, has_microchip = $6 WHERE id = $1 RETURNING *", + [id, name, age, type, breed, has_microchip] + ); + + res.status(201).json({ pet: updatedpet.rows[0] }); +}); + +router.delete("/:id", async (req, res) => { + const { id } = req.params; + + const deletedpet = await db.query( + "DELETE FROM pets WHERE id = $1 RETURNING *", + [id] + ); + + res.status(201).json({ pet: deletedpet.rows[0] }); +}); module.exports = router;