feat(frontend/api): i18n support

This commit is contained in:
sct
2020-09-17 16:17:41 +00:00
parent 04252f88bb
commit 9131254f33
22 changed files with 929 additions and 118 deletions

View File

@@ -4,6 +4,7 @@ interface SearchOptions {
query: string;
page?: number;
includeAdult?: boolean;
language?: string;
}
interface DiscoverMovieOptions {
@@ -260,10 +261,11 @@ class TheMovieDb {
query,
page = 1,
includeAdult = false,
language = 'en-US',
}: SearchOptions): Promise<TmdbSearchMultiResponse> => {
try {
const response = await this.axios.get('/search/multi', {
params: { query, page, include_adult: includeAdult },
params: { query, page, include_adult: includeAdult, language },
});
return response.data;

View File

@@ -1060,6 +1060,11 @@ paths:
type: number
example: 1
default: 1
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: Results
@@ -1097,6 +1102,11 @@ paths:
type: number
example: 1
default: 1
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: Results
@@ -1131,6 +1141,11 @@ paths:
type: number
example: 1
default: 1
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: Results
@@ -1282,6 +1297,11 @@ paths:
schema:
type: number
example: 337401
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: Movie details
@@ -1308,6 +1328,11 @@ paths:
type: number
example: 1
default: 1
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: List of movies
@@ -1348,6 +1373,11 @@ paths:
type: number
example: 1
default: 1
- in: query
name: language
schema:
type: string
example: en
responses:
'200':
description: List of movies

View File

@@ -8,7 +8,10 @@ const discoverRoutes = Router();
discoverRoutes.get('/movies', async (req, res) => {
const tmdb = new TheMovieDb();
const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page) });
const data = await tmdb.getDiscoverMovies({
page: Number(req.query.page),
language: req.query.language as string,
});
const requests = await MediaRequest.getRelatedRequests(
data.results.map((result) => result.id)
@@ -30,7 +33,10 @@ discoverRoutes.get('/movies', async (req, res) => {
discoverRoutes.get('/tv', async (req, res) => {
const tmdb = new TheMovieDb();
const data = await tmdb.getDiscoverTv({ page: Number(req.query.page) });
const data = await tmdb.getDiscoverTv({
page: Number(req.query.page),
language: req.query.language as string,
});
const requests = await MediaRequest.getRelatedRequests(
data.results.map((result) => result.id)

View File

@@ -9,7 +9,10 @@ const movieRoutes = Router();
movieRoutes.get('/:id', async (req, res) => {
const tmdb = new TheMovieDb();
const movie = await tmdb.getMovie({ movieId: Number(req.params.id) });
const movie = await tmdb.getMovie({
movieId: Number(req.params.id),
language: req.query.language as string,
});
const request = await MediaRequest.getRequest(movie.id);
@@ -22,6 +25,7 @@ movieRoutes.get('/:id/recommendations', async (req, res) => {
const results = await tmdb.getMovieRecommendations({
movieId: Number(req.params.id),
page: Number(req.query.page),
language: req.query.language as string,
});
const requests = await MediaRequest.getRelatedRequests(
@@ -47,6 +51,7 @@ movieRoutes.get('/:id/similar', async (req, res) => {
const results = await tmdb.getMovieSimilar({
movieId: Number(req.params.id),
page: Number(req.query.page),
language: req.query.language as string,
});
const requests = await MediaRequest.getRelatedRequests(

View File

@@ -11,6 +11,7 @@ searchRoutes.get('/', async (req, res) => {
const results = await tmdb.searchMulti({
query: req.query.query as string,
page: Number(req.query.page),
language: req.query.language as string,
});
const requests = await MediaRequest.getRelatedRequests(