UNPKG

availity-ekko

Version:

Mock server simulating Availity API rest services

76 lines (55 loc) 1.64 kB
'use strict'; const _ = require('lodash'); const Promise = require('bluebird'); const logger = require('../logger').getInstance(); const match = require('./match'); const result = require('./result'); const post = { multipart(req) { return new Promise((resolve, reject) => { if (!req.is('multipart')) { resolve(true); return; } req.busboy.on('file', (fieldname, file, filename) => { file.on('error', (error) => { logger.error('{red:Something went wrong uploading the file', error); }); file.on('end', () => { // Treat the file name as a field so we can match and score logger.info('File finished %s:', filename); req.body[fieldname] = filename; }); // `file` is a `ReadableStream`...always do something with it // else busboy won't fire the 'finish' even. At minimum do: file.resume(); }); req.busboy.on('field', (key, value) => { if (_.isEmpty(value)) { return; } logger.info(key + ', ' + value); req.body[key] = value; }); req.busboy.on('error', (err) => { logger.error(err); reject(err); }); req.busboy.on('finish', () => { logger.info('finished request'); resolve(true); }); req.pipe(req.busboy); }); }, send(req, res) { post.multipart(req).then(() => { match.set(req, res); result.send(req, res); return null; }, () => { res.status(500).send({ error: 'mock server error' }); }); } }; module.exports = post;