Initial commit 🚀

This commit is contained in:
Jonas Schmedtmann
2019-06-13 15:43:15 +01:00
commit 7f81af0ddf
1052 changed files with 2123177 additions and 0 deletions

View 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;

View 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;

View 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&center=-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;

View 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;

View 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;