mirror of
https://github.com/kevin-DL/complete-node-bootcamp.git
synced 2026-01-16 05:04:34 +00:00
Initial commit 🚀
This commit is contained in:
92
4-natours/after-section-06/controllers/tourController.js
Normal file
92
4-natours/after-section-06/controllers/tourController.js
Normal file
@@ -0,0 +1,92 @@
|
||||
const fs = require('fs');
|
||||
|
||||
const tours = JSON.parse(
|
||||
fs.readFileSync(`${__dirname}/../dev-data/data/tours-simple.json`)
|
||||
);
|
||||
|
||||
exports.checkID = (req, res, next, val) => {
|
||||
console.log(`Tour id is: ${val}`);
|
||||
|
||||
if (req.params.id * 1 > tours.length) {
|
||||
return res.status(404).json({
|
||||
status: 'fail',
|
||||
message: 'Invalid ID'
|
||||
});
|
||||
}
|
||||
next();
|
||||
};
|
||||
|
||||
exports.checkBody = (req, res, next) => {
|
||||
if (!req.body.name || !req.body.price) {
|
||||
return res.status(400).json({
|
||||
status: 'fail',
|
||||
message: 'Missing name or price'
|
||||
});
|
||||
}
|
||||
next();
|
||||
};
|
||||
|
||||
exports.getAllTours = (req, res) => {
|
||||
console.log(req.requestTime);
|
||||
|
||||
res.status(200).json({
|
||||
status: 'success',
|
||||
requestedAt: req.requestTime,
|
||||
results: tours.length,
|
||||
data: {
|
||||
tours
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.getTour = (req, res) => {
|
||||
console.log(req.params);
|
||||
const id = req.params.id * 1;
|
||||
|
||||
const tour = tours.find(el => el.id === id);
|
||||
|
||||
res.status(200).json({
|
||||
status: 'success',
|
||||
data: {
|
||||
tour
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.createTour = (req, res) => {
|
||||
// console.log(req.body);
|
||||
|
||||
const newId = tours[tours.length - 1].id + 1;
|
||||
const newTour = Object.assign({ id: newId }, req.body);
|
||||
|
||||
tours.push(newTour);
|
||||
|
||||
fs.writeFile(
|
||||
`${__dirname}/dev-data/data/tours-simple.json`,
|
||||
JSON.stringify(tours),
|
||||
err => {
|
||||
res.status(201).json({
|
||||
status: 'success',
|
||||
data: {
|
||||
tour: newTour
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
exports.updateTour = (req, res) => {
|
||||
res.status(200).json({
|
||||
status: 'success',
|
||||
data: {
|
||||
tour: '<Updated tour here...>'
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.deleteTour = (req, res) => {
|
||||
res.status(204).json({
|
||||
status: 'success',
|
||||
data: null
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user