UNPKG

symphony-solutions-file-sender

Version:
52 lines (43 loc) 1.24 kB
'use strict'; var Logger = require('symphony-solutions-logger'), request = require('request'), log; class FileSender { /** * @param {String} url - url for data to be sent * @param {String} loggerPrefix - prefix for logging * @throws {Error} if the url has not been given */ constructor (url, loggerPrefix) { this.url = url; this.loggerPrefix = loggerPrefix || 'FileSender'; log = new Logger(this.loggerPrefix); if (!this.url) { throw new Error('The url param is required'); } } /** * Send file's data to given url. Preferably to give .json files * @param {Object} data - data which will be sent to mapper. * @return {Promise} */ send (data) { return new Promise((resolve, reject) => { var requestSettings = { url : this.url, method: 'PUT', json : true, body : data }; log.warn(`Trying to post event to: ${log.emphasize(this.url)} ...`); request(requestSettings, (error, data) => { if (error) { log.error(error); return reject(error); } data && data.body ? resolve(data.body) : reject(); }); }); } } module.exports = FileSender;