libremdb/controllers/viewControllers.js

74 lines
2.1 KiB
JavaScript
Raw Normal View History

2022-03-19 17:22:07 +05:30
const { AppError, catchErrors } = require('../utils/errorUtils');
// const { genres, popularGenres } = require('../utils/constants');
const getMovie = require('../fetchers/movie');
exports.overview = (req, res, next) => res.redirect(301, '/about');
exports.about = catchErrors(async (req, res, next) => {
res.render('about', { title: 'About', page: 'About' });
});
exports.privacy = catchErrors(async (req, res, next) => {
res.render('privacy', { title: 'Privacy', page: 'Privacy' });
});
exports.contact = catchErrors(async (req, res, next) => {
res.render('contact', { title: 'Contact', page: 'Contact' });
});
exports.similarProjects = catchErrors(async (req, res, next) => {
res.render('similarProjects', {
title: 'Similar Projects',
page: 'Similar Projects',
});
});
exports.movie = catchErrors(async (req, res, next) => {
const movie = await getMovie(req.params.title, +process.env.IMAGE_QUALITY);
res.render('movie', {
movie,
title: movie.basic.name,
page: movie.basic.name,
});
});
/*
exports.searchGenres = catchErrors(async (req, res, next) => {
// fetching top 10 rated movies to show in homepage
let movies;
const genresQueriedStr = req.query.genres;
const genresQueriedArr = genresQueriedStr?.split(',');
if (!genresQueriedArr) {
movies = await moviesDataFetcher('sci-fi,action');
return res.render('homepage', {
title: 'Home Page',
page: 'Home Page',
movies: movies.slice(-10),
genres,
popularGenres,
});
}
const numResults = +req.query.results || 10;
const numPage = +req.query.page || 1;
const resultsToskip = numResults * (numPage - 1);
movies = await moviesDataFetcher(genresQueriedStr);
movies = movies.slice(resultsToskip, resultsToskip + numResults);
const totalNumResults = movies.length;
if (!movies.length) return next(new AppError('no movies found', 404));
const [curPage, totalPages] = [numPage, totalNumResults / numResults];
res.render('movies', {
title: genresQueriedArr.join(', '),
page: 'Movies',
genres: genresQueriedArr,
movies,
curPage,
totalPages,
});
});
*/