test 03
This commit is contained in:
parent
3c0306d590
commit
19fd92dffa
52
index.js
52
index.js
|
|
@ -43,6 +43,35 @@ app.get("/items/:id", (req, res) => {
|
|||
res.json(item);
|
||||
});
|
||||
|
||||
// READ - Get items by ID and filter by query parameters
|
||||
app.get("/items/:id/search", (req, res) => {
|
||||
const { id } = req.params; // Path parameter
|
||||
const { name, description } = req.query; // Query parameters
|
||||
|
||||
// Find the item by ID
|
||||
const item = items.find((i) => i.id === parseInt(id));
|
||||
if (!item) {
|
||||
return res.status(404).json({ error: "Item not found" });
|
||||
}
|
||||
|
||||
// Apply query parameter filters
|
||||
let filteredDetails = { ...item };
|
||||
|
||||
// Filter item fields based on query parameters
|
||||
if (name && !item.name.toLowerCase().includes(name.toLowerCase())) {
|
||||
return res.status(404).json({ error: "Item name does not match query" });
|
||||
}
|
||||
|
||||
if (
|
||||
description &&
|
||||
(!item.description || !item.description.toLowerCase().includes(description.toLowerCase()))
|
||||
) {
|
||||
return res.status(404).json({ error: "Item description does not match query" });
|
||||
}
|
||||
|
||||
res.json(filteredDetails);
|
||||
});
|
||||
|
||||
// UPDATE - Update item by ID
|
||||
app.put("/items/:id", (req, res) => {
|
||||
const { id } = req.params;
|
||||
|
|
@ -72,6 +101,29 @@ app.delete("/items/:id", (req, res) => {
|
|||
res.status(204).send();
|
||||
});
|
||||
|
||||
// READ - Get items with optional query parameters
|
||||
app.get("/items/search", (req, res) => {
|
||||
const { name, description } = req.query;
|
||||
|
||||
// Filter items based on query parameters
|
||||
let filteredItems = items;
|
||||
|
||||
if (name) {
|
||||
filteredItems = filteredItems.filter((item) =>
|
||||
item.name.toLowerCase().includes(name.toLowerCase())
|
||||
);
|
||||
}
|
||||
|
||||
if (description) {
|
||||
filteredItems = filteredItems.filter((item) =>
|
||||
item.description &&
|
||||
item.description.toLowerCase().includes(description.toLowerCase())
|
||||
);
|
||||
}
|
||||
|
||||
res.json(filteredItems);
|
||||
});
|
||||
|
||||
// Start server
|
||||
app.listen(PORT, () => {
|
||||
console.log(`Server is running on http://localhost:${PORT}`);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user