fixed cars_make

This commit is contained in:
Jonathan Jara 2025-05-03 19:36:46 -07:00
parent 62b76d6f13
commit bb3b992ee3
3 changed files with 74 additions and 2 deletions

View File

@ -1,4 +1,5 @@
const CarMake = require('../models/car_makes.js'); const CarMake = require('../models/car_makes.js');
const CarModel = require('../models/car_models.js');
// Get all makes // Get all makes
// This function retrieves all car makes from the database and sends them as a response. // This function retrieves all car makes from the database and sends them as a response.
@ -21,3 +22,53 @@ exports.getMakes = async (req, res) => {
}); });
} }
}; };
exports.getModelbyMake = async (req, res) => {
try {
const { make } = req.query;
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,
});
}
}
exports.getYearbyModel = async (req, res) => {
try {
const { model } = req.query;
const docs = await CarModel.find({ model: model })
.select("years")
.lean();
if (docs.length === 0) {
return res.status(404).json({ message: "No years found for this model" });
}
const years = docs[0].years.map((year) => ({
label: year,
}));
return res.status(200).json(years);
} catch (error) {
console.error("Server error retrieving years:", error);
return res.status(500).json({
message: "Server error retrieving years",
error: error.message,
});
}
}

17
src/models/car_models.js Normal file
View File

@ -0,0 +1,17 @@
const { Schema, model } = require('mongoose');
const carModelSchema = new Schema(
{
make: {
type: String,
},
model: {
type: String,
},
year: {
type: Number,
},
}
);
module.exports = model('CarModel', carModelSchema, 'jdm_models');

View File

@ -1,7 +1,11 @@
const express = require('express'); const express = require('express');
const router = express.Router(); const router = express.Router();
const {getMakes} = require('../../controllers/carsController'); const {getMakes, getModelbyMake, getYearbyModel} = require('../../controllers/carsController');
router.get('/makes', getMakes); router.get('/makes', getMakes);
router.get('/models', getModelbyMake);
router.get('/years', getYearbyModel);
module.exports = router; module.exports = router;