diff --git a/src/controllers/carsController.js b/src/controllers/carsController.js index 820158f..dd38a14 100644 --- a/src/controllers/carsController.js +++ b/src/controllers/carsController.js @@ -23,30 +23,31 @@ exports.getMakes = async (req, res) => { } }; -exports.getModelbyMake = async (req, res) => { +exports.getModelsByMake = async (req, res) => { try { - const { make } = req.body.make; - const docs = await CarModel.find({ make: make }) - .select("models") - .lean(); - - if (docs.length === 0) { - return res.status(404).json({ message: "No models found for this make" }); - } - - const models = docs[0].models.map((model) => ({ - label: model, - })); - - return res.status(200).json(models); - } catch (error) { - console.error("Server error retrieving models:", error); - return res.status(500).json({ - message: "Server error retrieving models", - error: error.message, - }); + const { make } = req.query; + if (!make) { + return res.status(400).json({ message: "Missing `make` parameter" }); + } + + const models = await Car.distinct("model", { make }); + + if (models.length === 0) { + return res.status(404).json({ message: "No models found for this make" }); + } + + const payload = models.map((m) => ({ label: m })); + return res.status(200).json(payload); + + } catch (err) { + console.error("Error retrieving models:", err); + return res + .status(500) + .json({ message: "Server error retrieving models", error: err.message }); } -} +}; + + exports.getYearbyModel = async (req, res) => { try {