JSFiddle - React, Tailwind, and code Playground

by aanita0309

JavaScript

const https = require('https');
/*
 * Complete the function below.
 * Use console.log to print the result, you should not return from the function.
 */

function getPageFromServer(substr, pageNumber){
 return (new Promise ( function (resolve, reject) {
    var urlMovies='https://jsonmock.hackerrank.com/api/movies/search/?Title='+ substr + '&page='+              pageNumber.toString();
     https.get(urlMovies, (res) => {
        res.on('data', (d) => {
            resolve(d);
        });
     }).on('error', (e) => {
        reject(e);
    });
}));
}

/*
{
      "Poster": "N/A",
      "Title": "The Death of Spiderman",
      "Type": "movie",
      "Year": 2015,
      "imdbID": "tt5921428"
    }
*/
function parsePageJSON(data.movies){
    var dataJson = JSON.parse(data), movieRecord, movies = []; 
    return parsePageData(dataJson);
}

function parsePageData(moviesResponse, movies){
    var movieRecord; 
    for (let i = 0;i<moviesResponse.data.Length;i++){
        movieRecord = moviesResponse.data[i];
        movies.push(movieRecord.Title);
        console.log(movieRecord.Title);
    }
    return movies;
}

function getMovieTitles(substr) {
    var movies = [], totalMovies = 0;
    getPageFromServer(substr, 1)
        .then(function (data) {
           var obj = JSON.parse(data), movies = [];
        
            var totalPages = parseInt(obj['total_pages']); 
            var dataPromises = [];
            totalMovies = parseInt(obj['total']); 
            parsePageData(obj,movies);
           if (totalPages != NaN && totalPages > 1){
               for (let i=2; i<=totalPages; i++){
                   dataPromises.push(getPageFromServer(substr,i));
               }
               promises.all(dataPromises).then(data=>parsePageData(data, movies));
           }
           movies.sort();
    
            for (let i=0;i<movies.length;i++){
                console.log(movies[i]);
            }
        })
        .catch(function (error) {
            // oops, mom don't...