UNPKG

epha-robot

Version:

Fetching, cleaning, transforming of pharmaceutical data from public resources

56 lines (47 loc) 1.73 kB
"use strict"; var defaultLog = require("../../index").log; var disk = require("../../common/disk"); var fetchKompendiumServerFileSize = require("./fetchKompendiumServerFileSize"); /** * Resolves with true if a refresh is needed. * * @param {{download: {file: String}}} cfg * @param {Log|console} log - optional * @returns {Promise} */ function compareKompendiumFileSize(cfg, log) { log = log || defaultLog; return new Promise(function (resolve, reject) { log.info("Kompendium", "Check if " + cfg.download.file + " exists."); disk.fileExists(cfg.download.file) .then(function (fileExists) { if (!fileExists) { log.warn("Kompendium", cfg.download.file + " hasn't been download yet."); return[{size: true}, {size: false}]; } log.info("Kompendium", "Read and fetch file stats from disk and server."); return Promise.all([ disk.read.stats(cfg.download.file), fetchKompendiumServerFileSize(cfg.download.url) ]); }) .then(function (data) { var downloadedFileSize = data[0].size; var serverFileSize = data[1].size; log.info("Kompendium", "Fetched file stats from server."); log.info("Kompendium", "Comparing disk and server stats now."); if (downloadedFileSize === serverFileSize) { log.warn("Kompendium", "File on disk is up-to-date"); resolve(false); } else { log.warn("Kompendium", "There is a newer file on the server"); resolve(true); } }) .catch(function (err) { log.error("Kompendium", err.message, err.stack); reject(err); }); }); } module.exports = compareKompendiumFileSize;