mirror of
https://github.com/kevin-DL/complete-node-bootcamp.git
synced 2026-01-19 14:15:24 +00:00
Initial commit 🚀
This commit is contained in:
24
4-natours/after-section-13/routes/bookingRoutes.js
Normal file
24
4-natours/after-section-13/routes/bookingRoutes.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const express = require('express');
|
||||
const bookingController = require('./../controllers/bookingController');
|
||||
const authController = require('./../controllers/authController');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.use(authController.protect);
|
||||
|
||||
router.get('/checkout-session/:tourId', bookingController.getCheckoutSession);
|
||||
|
||||
router.use(authController.restrictTo('admin', 'lead-guide'));
|
||||
|
||||
router
|
||||
.route('/')
|
||||
.get(bookingController.getAllBookings)
|
||||
.post(bookingController.createBooking);
|
||||
|
||||
router
|
||||
.route('/:id')
|
||||
.get(bookingController.getBooking)
|
||||
.patch(bookingController.updateBooking)
|
||||
.delete(bookingController.deleteBooking);
|
||||
|
||||
module.exports = router;
|
||||
30
4-natours/after-section-13/routes/reviewRoutes.js
Normal file
30
4-natours/after-section-13/routes/reviewRoutes.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const express = require('express');
|
||||
const reviewController = require('./../controllers/reviewController');
|
||||
const authController = require('./../controllers/authController');
|
||||
|
||||
const router = express.Router({ mergeParams: true });
|
||||
|
||||
router.use(authController.protect);
|
||||
|
||||
router
|
||||
.route('/')
|
||||
.get(reviewController.getAllReviews)
|
||||
.post(
|
||||
authController.restrictTo('user'),
|
||||
reviewController.setTourUserIds,
|
||||
reviewController.createReview
|
||||
);
|
||||
|
||||
router
|
||||
.route('/:id')
|
||||
.get(reviewController.getReview)
|
||||
.patch(
|
||||
authController.restrictTo('user', 'admin'),
|
||||
reviewController.updateReview
|
||||
)
|
||||
.delete(
|
||||
authController.restrictTo('user', 'admin'),
|
||||
reviewController.deleteReview
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
61
4-natours/after-section-13/routes/tourRoutes.js
Normal file
61
4-natours/after-section-13/routes/tourRoutes.js
Normal file
@@ -0,0 +1,61 @@
|
||||
const express = require('express');
|
||||
const tourController = require('./../controllers/tourController');
|
||||
const authController = require('./../controllers/authController');
|
||||
const reviewRouter = require('./../routes/reviewRoutes');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// router.param('id', tourController.checkID);
|
||||
|
||||
// POST /tour/234fad4/reviews
|
||||
// GET /tour/234fad4/reviews
|
||||
|
||||
router.use('/:tourId/reviews', reviewRouter);
|
||||
|
||||
router
|
||||
.route('/top-5-cheap')
|
||||
.get(tourController.aliasTopTours, tourController.getAllTours);
|
||||
|
||||
router.route('/tour-stats').get(tourController.getTourStats);
|
||||
router
|
||||
.route('/monthly-plan/:year')
|
||||
.get(
|
||||
authController.protect,
|
||||
authController.restrictTo('admin', 'lead-guide', 'guide'),
|
||||
tourController.getMonthlyPlan
|
||||
);
|
||||
|
||||
router
|
||||
.route('/tours-within/:distance/center/:latlng/unit/:unit')
|
||||
.get(tourController.getToursWithin);
|
||||
// /tours-within?distance=233¢er=-40,45&unit=mi
|
||||
// /tours-within/233/center/-40,45/unit/mi
|
||||
|
||||
router.route('/distances/:latlng/unit/:unit').get(tourController.getDistances);
|
||||
|
||||
router
|
||||
.route('/')
|
||||
.get(tourController.getAllTours)
|
||||
.post(
|
||||
authController.protect,
|
||||
authController.restrictTo('admin', 'lead-guide'),
|
||||
tourController.createTour
|
||||
);
|
||||
|
||||
router
|
||||
.route('/:id')
|
||||
.get(tourController.getTour)
|
||||
.patch(
|
||||
authController.protect,
|
||||
authController.restrictTo('admin', 'lead-guide'),
|
||||
tourController.uploadTourImages,
|
||||
tourController.resizeTourImages,
|
||||
tourController.updateTour
|
||||
)
|
||||
.delete(
|
||||
authController.protect,
|
||||
authController.restrictTo('admin', 'lead-guide'),
|
||||
tourController.deleteTour
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
40
4-natours/after-section-13/routes/userRoutes.js
Normal file
40
4-natours/after-section-13/routes/userRoutes.js
Normal file
@@ -0,0 +1,40 @@
|
||||
const express = require('express');
|
||||
const userController = require('./../controllers/userController');
|
||||
const authController = require('./../controllers/authController');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.post('/signup', authController.signup);
|
||||
router.post('/login', authController.login);
|
||||
router.get('/logout', authController.logout);
|
||||
|
||||
router.post('/forgotPassword', authController.forgotPassword);
|
||||
router.patch('/resetPassword/:token', authController.resetPassword);
|
||||
|
||||
// Protect all routes after this middleware
|
||||
router.use(authController.protect);
|
||||
|
||||
router.patch('/updateMyPassword', authController.updatePassword);
|
||||
router.get('/me', userController.getMe, userController.getUser);
|
||||
router.patch(
|
||||
'/updateMe',
|
||||
userController.uploadUserPhoto,
|
||||
userController.resizeUserPhoto,
|
||||
userController.updateMe
|
||||
);
|
||||
router.delete('/deleteMe', userController.deleteMe);
|
||||
|
||||
router.use(authController.restrictTo('admin'));
|
||||
|
||||
router
|
||||
.route('/')
|
||||
.get(userController.getAllUsers)
|
||||
.post(userController.createUser);
|
||||
|
||||
router
|
||||
.route('/:id')
|
||||
.get(userController.getUser)
|
||||
.patch(userController.updateUser)
|
||||
.delete(userController.deleteUser);
|
||||
|
||||
module.exports = router;
|
||||
27
4-natours/after-section-13/routes/viewRoutes.js
Normal file
27
4-natours/after-section-13/routes/viewRoutes.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const express = require('express');
|
||||
const viewsController = require('../controllers/viewsController');
|
||||
const authController = require('../controllers/authController');
|
||||
const bookingController = require('../controllers/bookingController');
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/', authController.isLoggedIn, viewsController.getOverview);
|
||||
|
||||
router.get('/tour/:slug', authController.isLoggedIn, viewsController.getTour);
|
||||
router.get('/login', authController.isLoggedIn, viewsController.getLoginForm);
|
||||
router.get('/me', authController.protect, viewsController.getAccount);
|
||||
|
||||
router.get(
|
||||
'/my-tours',
|
||||
bookingController.createBookingCheckout,
|
||||
authController.protect,
|
||||
viewsController.getMyTours
|
||||
);
|
||||
|
||||
router.post(
|
||||
'/submit-user-data',
|
||||
authController.protect,
|
||||
viewsController.updateUserData
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user