fixed cars_make
This commit is contained in:
parent
62b76d6f13
commit
bb3b992ee3
@ -1,4 +1,5 @@
|
||||
const CarMake = require('../models/car_makes.js');
|
||||
const CarModel = require('../models/car_models.js');
|
||||
|
||||
// Get all makes
|
||||
// This function retrieves all car makes from the database and sends them as a response.
|
||||
@ -20,4 +21,54 @@ exports.getMakes = async (req, res) => {
|
||||
error: error.message,
|
||||
});
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
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 router = express.Router();
|
||||
const {getMakes} = require('../../controllers/carsController');
|
||||
const {getMakes, getModelbyMake, getYearbyModel} = require('../../controllers/carsController');
|
||||
|
||||
router.get('/makes', getMakes);
|
||||
|
||||
router.get('/models', getModelbyMake);
|
||||
|
||||
router.get('/years', getYearbyModel);
|
||||
|
||||
module.exports = router;
|
||||
Loading…
x
Reference in New Issue
Block a user