Skip to content

Commit

Permalink
updated valueRouter routes for pagination
Browse files Browse the repository at this point in the history
  • Loading branch information
Madhu2244 committed Mar 4, 2024
1 parent 548e3aa commit 8a79a55
Showing 1 changed file with 55 additions and 40 deletions.
95 changes: 55 additions & 40 deletions routes/valueRouter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,55 @@ const { db } = require('../server/db');

const valueRouter = express.Router();

// GET all items
// GET all items without filtering
valueRouter.get('/', async (req, res) => {
try {
const { itemsLimit, pageNum } = req.query;

const allItems = await db.query(
`
SELECT *
FROM fair_market_value
ORDER BY item_id
${itemsLimit ? ` LIMIT ${itemsLimit}` : ''}
${pageNum ? ` OFFSET ${(pageNum - 1) * itemsLimit}` : ''};`,
{ itemsLimit, pageNum },
);
res.status(200).send(allItems);
const items = await db.query(`SELECT * FROM fair_market_value;`);
res.status(200).send(items);
} catch (err) {
res.status(500).send(err.message);
}
});

valueRouter.get('/totalValues', async (req, res) => {
try {
const { category } = req.query;
const categoryWhereClause =
category && category !== 'all' ? `WHERE category='${category}'` : '';

const totalSites = await db.query(`
SELECT COUNT(*)
FROM fair_market_value
${categoryWhereClause}
`);
res.status(200).send(totalSites);
} catch (err) {
res.status(500).send(err.message);
}
});

// GET all items WITH PAGINATION
valueRouter.get('/paginate', async (req, res) => {
try {
const { itemsLimit, pageNum, category } = req.query;
const categoryWhereClause =
category && category !== 'all' ? `WHERE category='${category}'` : '';
const allItems = await db.query(
`
SELECT *
FROM fair_market_value
${categoryWhereClause}
ORDER BY item_id
${itemsLimit ? ` LIMIT ${itemsLimit}` : ''}
${pageNum ? ` OFFSET ${(pageNum - 1) * itemsLimit}` : ''};`,
{ itemsLimit, pageNum },
);
res.status(200).send(allItems);
} catch (err) {
res.status(500).send(err.message);
}
});

// GET all values by item id
valueRouter.get('/:itemId', async (req, res) => {
try {
Expand All @@ -52,61 +69,59 @@ valueRouter.get('/:itemId', async (req, res) => {
valueRouter.post('/', async (req, res) => {
try {
const { itemName, quantityType, price, category } = req.body;
await db.query(
const item = await db.query(
'INSERT INTO fair_market_value (item_name, quantity_type, price, category) VALUES ($(itemName), $(quantityType), $(price), $(category)) RETURNING *',
{ itemName, quantityType, price, category },
);
res.status(200).send(item);
} catch (err) {
res.status(500).send(err.message);
}
});

// edit item
valueRouter.put('/:id', async (req, res) => {
try {
const { id } = req.params;
const { itemName, quantityType, price, category } = req.body;
const { id } = req.params;

await db.query(
`UPDATE fair_market_value
SET item_name = $(itemName), quantity_type = $(quantityType), price = $(price), category = $(category)
WHERE item_id = $(id) RETURNING *`,
{ id, itemName, quantityType, price, category },
);
} catch (err) {
res.status(500).send(err.message);
}
});
const { itemName, quantityType, price, category } = req.body;

// GET values by category
valueRouter.get('/filter/:category', async (req, res) => {
try {
const { category } = req.params;
let query = 'SELECT * FROM fair_market_value';
if (category && category !== 'all') {
query += ' WHERE category = $(category)';
}
const items = await db.query(query, {
const updateItem = await db.query(
`UPDATE fair_market_value SET
item_id = $(id)
${itemName ? `, item_name = $(itemName)` : ``}
${quantityType ? `, quantity_type = $(quantityType)` : ``}
${price ? `, price = $(price)` : ``}
${category ? `, category = $(category)` : ``}
WHERE item_id = $(id)
RETURNING *;`,
{
itemName,
quantityType,
price,
category,
});
res.status(200).send(items);
id,
},
);
try {
return res.status(200).send(updateItem[0]);
} catch (err) {
res.status(500).send(err.message);
return res.status(500).send(err.message);
}
});

valueRouter.delete('/:id', async (req, res) => {
try {
const { id } = req.params;

await db.query(
const msg = await db.query(
`
DELETE
FROM fair_market_value
WHERE item_id = $(id)
`,
{ id },
);
res.status(200).send(msg);
} catch (err) {
res.status(500).send(err.message);
}
Expand Down

0 comments on commit 8a79a55

Please sign in to comment.