Я могу вытащить заполненный PDF в Postman нормально, но мой код показывает только пустой PDF:
async function getWeeklyReport(queryString) {
return new Promise((resolve, reject) => {
request({
url: 'https://reports.myApi.com/ReportCenter/Bookings',
qs: queryString,
headers: {
'Content-Type': 'application/pdf',
'Accept': 'application/pdf',
'Authorization': 'Basic ' + new Buffer(process.env.apiEmail + ':' + process.env.apiPassword, 'utf8').toString('base64')
}
}, (error, response, body) => {
if (error) {
reject(error);
} else {
if (response.statusCode === 200) {
resolve(body);
} else if (response.statusCode === 409) {
setTimeout(() => {
resolve(getWeeklyReport(queryString));
}, response.headers['Retry-After'] * 1000);
} else {
reject(response);
}
}
});
});
}
И вот где я это пишу:
async function saveCSVLocally(path, obj) {
return new Promise((resolve, reject) => {
fs.writeFile(path, obj, 'utf8', function (err) {
if (err) {
console.log('Some error occured - file either not saved or corrupted file saved.');
console.log(err);
} else{
console.log('File saved locally');
}
});
})
}
Я пробовал звонить несколькими способами, но ни одна из них не работает:
const report = await getWeeklyReport(queryString);
//saveFileLocally(localPath, report);//.then(emailSender.sendNewEmail());
//fs.writeFileSync("test.pdf", report,'binary');
Так как мне правильно вытащить этот pdf? Спасибо!