fixed cars_make
This commit is contained in:
parent
62b76d6f13
commit
bb3b992ee3
@ -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
17
src/models/car_models.js
Normal 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');
|
||||||
@ -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;
|
||||||
Loading…
x
Reference in New Issue
Block a user