diff --git a/lib/compliance.js b/lib/compliance.js index 8ecd1770..becf9ee3 100644 --- a/lib/compliance.js +++ b/lib/compliance.js @@ -72,8 +72,8 @@ function validateOfac (deviceId, sanctionsActive, customer) { function validationPatch (deviceId, sanctionsActive, customer) { return validateOfac(deviceId, sanctionsActive, customer) - .then(sactions => - _.isNil(customer.sanctions) || customer.sanctions !== sactions ? + .then(sanctions => + _.isNil(customer.sanctions) || customer.sanctions !== sanctions ? { sanctions } : {} ) diff --git a/lib/ofac/update.js b/lib/ofac/update.js index 5a91819f..16d03d3d 100644 --- a/lib/ofac/update.js +++ b/lib/ofac/update.js @@ -1,5 +1,5 @@ const parser = require('./parsing') -const https = require('https') +const axios = require('axios') const { createWriteStream } = require('fs') const fs = require('fs/promises') const { rename } = fs @@ -22,18 +22,34 @@ const mkdir = path => fs.mkdir(path) .catch(err => err.code === 'EEXIST' ? Promise.resolve() : Promise.reject(err)) +const newDownload = (dstDir, { name, url }) => { + return path.join('/tmp/', name + '.xml') +} + const download = (dstDir, { name, url }) => { const dstFile = path.join(dstDir, name + '.xml') - const file = createWriteStream(dstFile) + const writer = createWriteStream(dstFile) - return new Promise((resolve, reject) => { - const request = https.get(url, response => { - response.pipe(file) - file.on('finish', () => file.close(() => resolve(dstFile))) - }) - - request.on('error', reject) - }) + return axios({ + method: 'get', + url: url, + responseType: 'stream', + }).then(response => { + return new Promise((resolve, reject) => { + response.data.pipe(writer); + let error = null; + writer.on('error', err => { + error = err; + writer.close(); + reject(err); + }); + writer.on('close', () => { + if (!error) { + resolve(dstFile); + } + }); + }); + }); } const parseToJson = srcFile => {