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...