Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annas Project Mongo API- cats #513

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Anna2024WebDev
Copy link

Comment on lines +69 to +103
app.get("/", (request, response) => {
const endpoints = listEndpoints(app); // Fetch all available routes
response.json({
message:
"Miao Miao! Welcome to the Cats Mongo API! Here you can find all types of cats. Below are the available endpoints",
endpoints: endpoints, // Send the list of endpoints as JSON
});
});

app.get("/cats", async (request, response) => {
const { personality, fur_length, commonality, breed } = request.query;

// Build the query object based on provided parameters
const query = {};

// If no query parameters are provided, return all cats
if (personality) query.personality = { $regex: new RegExp(personality, "i") }; // Case-insensitive search
if (fur_length) query.fur_length = { $regex: new RegExp(fur_length, "i") };
if (commonality) query.commonality = { $regex: new RegExp(commonality, "i") };
if (breed) query.breed = { $regex: new RegExp(breed, "i") };

try {
// Query the MongoDB 'Cat' collection
const matchingCats = await Cat.find(query);

if (matchingCats.length > 0) {
response.json(matchingCats); // Return the matching cats
} else {
response.status(404).send("No cats found with the specified criteria");
}
} catch (error) {
console.error("Error fetching cats:", error);
response.status(500).send("Server error occurred");
}
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done query-building 💯


try {
// Query MongoDB for the cat with the given custom 'id' field (cast to Number)
const cat = await Cat.findOne({ id: parseInt(id) }); // Convert the id to an integer
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each instance gets its own mongoDB ID so we can use that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants