const fs = require('fs-extra');
const fetch = require('isomorphic-fetch');
var result;
function callAPI(i, artworks, pageNbr) {
console.log(i)
fetch(`https://picasso.iro.umontreal.ca/~mona/api/v2/artworks?paginate=50&page=${i}`)
.then(function(response) {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
})
.then(function(data) {
console.log("data response length", data.data.length)
artworks = artworks.concat(data.data)
console.log("artworks length", artworks.length)
if (i < pageNbr)
callAPI(i+1, artworks, pageNbr)
else {
console.log(artworks.length)
fs.writeJSONSync('../data/artworks_v2_2022-07-28.json', artworks, {spaces: 2, encoding: 'utf8'});
return artworks;
}
})
}
fetch("https://picasso.iro.umontreal.ca/~mona/api/v2/artworks")
.then(function(response) {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
})
.then(function(data) {
var pageNbr = data.meta.last_page;
console.log("initial page nbr", pageNbr)
console.log("total nbr of artworks", data.meta.total)
result = callAPI(1, [], pageNbr)
});