viewControllers.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. const { AppError, catchErrors } = require('../utils/errorUtils');
  2. // const { genres, popularGenres } = require('../utils/constants');
  3. const getMovie = require('../fetchers/movie');
  4. exports.overview = (req, res, next) => res.redirect(301, '/about');
  5. exports.about = catchErrors(async (req, res, next) => {
  6. res.render('about', { title: 'About', page: 'About' });
  7. });
  8. exports.privacy = catchErrors(async (req, res, next) => {
  9. res.render('privacy', { title: 'Privacy', page: 'Privacy' });
  10. });
  11. exports.contact = catchErrors(async (req, res, next) => {
  12. res.render('contact', { title: 'Contact', page: 'Contact' });
  13. });
  14. exports.similarProjects = catchErrors(async (req, res, next) => {
  15. res.render('similarProjects', {
  16. title: 'Similar Projects',
  17. page: 'Similar Projects',
  18. });
  19. });
  20. exports.movie = catchErrors(async (req, res, next) => {
  21. const movie = await getMovie(req.params.title, +process.env.IMAGE_QUALITY);
  22. res.render('movie', {
  23. movie,
  24. title: movie.basic.name,
  25. page: movie.basic.name,
  26. });
  27. });
  28. /*
  29. exports.searchGenres = catchErrors(async (req, res, next) => {
  30. // fetching top 10 rated movies to show in homepage
  31. let movies;
  32. const genresQueriedStr = req.query.genres;
  33. const genresQueriedArr = genresQueriedStr?.split(',');
  34. if (!genresQueriedArr) {
  35. movies = await moviesDataFetcher('sci-fi,action');
  36. return res.render('homepage', {
  37. title: 'Home Page',
  38. page: 'Home Page',
  39. movies: movies.slice(-10),
  40. genres,
  41. popularGenres,
  42. });
  43. }
  44. const numResults = +req.query.results || 10;
  45. const numPage = +req.query.page || 1;
  46. const resultsToskip = numResults * (numPage - 1);
  47. movies = await moviesDataFetcher(genresQueriedStr);
  48. movies = movies.slice(resultsToskip, resultsToskip + numResults);
  49. const totalNumResults = movies.length;
  50. if (!movies.length) return next(new AppError('no movies found', 404));
  51. const [curPage, totalPages] = [numPage, totalNumResults / numResults];
  52. res.render('movies', {
  53. title: genresQueriedArr.join(', '),
  54. page: 'Movies',
  55. genres: genresQueriedArr,
  56. movies,
  57. curPage,
  58. totalPages,
  59. });
  60. });
  61. */