UNPKG

tmdb-js-wrapper

Version:

A JavaScript wrapper package for The Movie Database API.

79 lines (70 loc) 2.47 kB
/**@module tmdb-js/sections/types */ // TMDb utilities const tmdbUtils = require('../../../utils/tmdb_utils'); const sections = tmdbUtils.sections; const mediaTypes = tmdbUtils.mediaTypes; // Sections const Section = require('../section').Section; /** * A class that represents the trending section in TMDb. */ exports.TrendingSection = class extends Section { /** * The time window of this trending section. */ _timeWindow; /** * Initializes this object. * @param {string} timeWindow The time window of this trending section (see tmdb_utils.timeWindows). * @param {string} apiKey The TMDb API key. * @param {string} language The language of queries, the default is "en-US". */ constructor(timeWindow, apiKey, language = "en-US") { super(sections.TRENDING, undefined, apiKey, language); this._timeWindow = timeWindow; } /** * Gets the all trending media (movies, TV shows, people) * in the passed time window. See tmdb_utils.timeWindow for the valid types. * * @returns {Promise<*>} A Promise of trending media data in JSON format. */ async getAllAsync() { return await this.createChild(mediaTypes.ALL) .createChild(this._timeWindow) .getQueryResultAsync(); } /** * Gets the trending movies in the passed time window. * See tmdb_utils.timeWindow for the valid types. * * @returns {Promise<*>} A Promise of trending movie data in JSON format. */ async getMoviesAsync() { return await this.createChild(mediaTypes.MOVIE) .createChild(this._timeWindow) .getQueryResultAsync(); } /** * Gets the trending TV shows in the passed time window. * See tmdb_utils.timeWindow for the valid types. * * @returns {Promise<*>} A Promise of trending TV show data in JSON format. */ async getTvShowsAsync() { return await this.createChild(mediaTypes.TV) .createChild(this._timeWindow) .getQueryResultAsync(); } /** * Gets the trending people in the passed time window. * See tmdb_utils.timeWindow for the valid types. * * @returns {Promise<*>} A Promise of trending people data in JSON format. */ async getPeopleAsync() { return await this.createChild(mediaTypes.PERSON) .createChild(this._timeWindow) .getQueryResultAsync(); } }