feat(api): discover endpoint for movie/tv (#73)
This commit is contained in:
33
server/routes/discover.ts
Normal file
33
server/routes/discover.ts
Normal 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;
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user