feat(api): discover endpoint for movie/tv (#73)

This commit is contained in:
sct
2020-09-11 11:00:21 +09:00
committed by GitHub
parent ba34e54d77
commit 258bb93be2
4 changed files with 114 additions and 3 deletions

33
server/routes/discover.ts Normal file
View File

@@ -0,0 +1,33 @@
import { Router } from 'express';
import TheMovieDb from '../api/themoviedb';
import { mapMovieResult, mapTvResult } from '../models/Search';
const discoverRoutes = Router();
discoverRoutes.get('/movies', async (req, res) => {
const tmdb = new TheMovieDb();
const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page) });
return res.status(200).json({
page: data.page,
totalPages: data.total_pages,
totalResults: data.total_results,
results: data.results.map(mapMovieResult),
});
});
discoverRoutes.get('/tv', async (req, res) => {
const tmdb = new TheMovieDb();
const data = await tmdb.getDiscoverTv({ page: Number(req.query.page) });
return res.status(200).json({
page: data.page,
totalPages: data.total_pages,
totalResults: data.total_results,
results: data.results.map(mapTvResult),
});
});
export default discoverRoutes;

View File

@@ -6,6 +6,7 @@ import settingsRoutes from './settings';
import { Permission } from '../lib/permissions';
import { getSettings } from '../lib/settings';
import searchRoutes from './search';
import discoverRoutes from './discover';
const router = Router();
@@ -17,6 +18,7 @@ router.use(
settingsRoutes
);
router.use('/search', isAuthenticated(), searchRoutes);
router.use('/discover', isAuthenticated(), discoverRoutes);
router.use('/auth', authRoutes);
router.get('/settings/public', (_req, res) => {

View File

@@ -7,9 +7,11 @@ const searchRoutes = Router();
searchRoutes.get('/', async (req, res) => {
const tmdb = new TheMovieDb();
const results = await tmdb.searchMulti({ query: req.query.query as string });
const megaResults = mapSearchResults(results.results);
console.log(megaResults);
const results = await tmdb.searchMulti({
query: req.query.query as string,
page: Number(req.query.page),
});
return res.status(200).json({
page: results.page,
totalPages: results.total_pages,