|
|
@ -1,6 +1,6 @@ |
|
|
|
import Application from "@server/Application"; |
|
|
|
import TheMovieDb, { ExternalSource } from "@lib/tmdb"; |
|
|
|
import { env, secret } from "@server/util"; |
|
|
|
import { env, plexMediaUrl, secret } from "@server/util"; |
|
|
|
import { request } from "https"; |
|
|
|
import Service from "./Service"; |
|
|
|
import TvDb from "./TvDb"; |
|
|
@ -129,17 +129,18 @@ export default class MovieSearch extends Service |
|
|
|
let fetchMovieRequest = this.tmdb.movie(id); |
|
|
|
let ticket = await MovieTicket.findOne({ where: { tmdbId: id, isCanceled: false }, relations: ["user"] }); |
|
|
|
let movie = await fetchMovieRequest; |
|
|
|
let plexKey = await PlexMovie.findPlexKey(id); |
|
|
|
let result: IApiMovieDetails = { |
|
|
|
tmdbId : id, |
|
|
|
backdropPath: movie.backdrop_path, |
|
|
|
imdbId : movie.imdb_id, |
|
|
|
overview : movie.overview, |
|
|
|
plexLink : plexKey !== null ? plexMediaUrl(plexKey) : null, |
|
|
|
posterPath : movie.poster_path, |
|
|
|
releaseDate : movie.release_date, |
|
|
|
runtime : movie.runtime, |
|
|
|
title : movie.title, |
|
|
|
ticketId : ticket?.id ?? null, |
|
|
|
isOnPlex : await PlexMovie.isOnPlex(id), |
|
|
|
requestedBy : (ticket ? { |
|
|
|
id : ticket.user.id, |
|
|
|
isAdmin: ticket.user.isAdmin, |
|
|
@ -163,13 +164,13 @@ export default class MovieSearch extends Service |
|
|
|
let movieFetchRequest = this.tmdb.searchMovie(query, year); |
|
|
|
let activeTickets = await MovieTicket.activeTicketMap(); |
|
|
|
let results = await movieFetchRequest; |
|
|
|
let isOnPlex = await Promise.all(results.results.map( |
|
|
|
movie => PlexMovie.isOnPlex(movie.id) |
|
|
|
let plexKeys = await Promise.all(results.results.map( |
|
|
|
movie => PlexMovie.findPlexKey(movie.id) |
|
|
|
)); |
|
|
|
return <IApiPaginatedResponse<IApiMovie>>{ |
|
|
|
page: results.page, |
|
|
|
results: results.results.map((movie, index) => <IApiMovie>{ |
|
|
|
isOnPlex : isOnPlex[index], |
|
|
|
plexLink : plexKeys[index] !== null ? plexMediaUrl(<number>plexKeys[index]) : null, |
|
|
|
posterPath : movie.poster_path, |
|
|
|
releaseDate: movie.release_date, |
|
|
|
ticketId : activeTickets[movie.id] ?? null, |
|
|
|