UNPKG

pdfer-upload-imacros

Version:

Upload a pdfer document to the pdfer service using iMacros for Firefox and the PDFer web frontend

79 lines (75 loc) 2.1 kB
/** * Get a list of existing bills from the DocParse api server */ var rk = require('required-keys'); function getURL(data) { var config = data.config; var hash = data.hash; var email = config.pdfer.email var password = config.pdfer.password email = encodeURIComponent(email); password = encodeURIComponent(password); var url = 'https://' + email + ':' + password + '@' + config.pdfer.host + '/api/sendBase64' return url; } function parseResponse(request, cb) { var resData; var statusCode = request.status; var body = request.response; if (body === 'Unauthorized') { iimDisplay('send failed failed, "Unauthorized"'); return cb({ message: 'error uploading file to pdfer service, missing key', error: 'not authorized', statusCode: statusCode, body: body, file: 'node_modules/pdfer-upload-imacros/index.js' }) } try { resData = JSON.parse(body); } catch(err) { return cb({ message: 'error uploading file to pdfer service, missing key', error: err, statusCode: statusCode, body: body, file: 'node_modules/pdfer-upload-imacros/index.js' }) return cb(err); } if (statusCode !== 200) { return cb({ message: 'error uploading file to pdfer service, missing key', error: 'bad status code', resData: resData, statusCode: statusCode, file: 'node_modules/pdfer-upload-imacros/index.js' }) } cb(null, resData); } module.exports = function(data, cb) { var keys = ['config', 'type', 'base64'] var err = rk.truthySync(data, keys) if (err) { return cb({ message: 'error uploading file to pdfer service, missing key', error: err, file: 'node_modules/pdfer-upload-imacros/index.js' }) } var config = data.config var url = getURL(data); var type = data.type var base64 = data.base64 var formData = new FormData(); var xhr = new XMLHttpRequest() formData.append("base64PDF", base64); formData.append("type", type); xhr.open('POST', url, false) xhr.send(formData); parseResponse(xhr, cb); };