UNPKG

eirenerx-sdk

Version:
63 lines (53 loc) 1.57 kB
var request = require('request'); var _ = require('lodash'); module.exports = function(opts) { var url = opts.api + '/api/vendor/v2/patients/'; var handler = _.curry(function(cb, e, r, b) { if(e) { return cb(e); } cb(null, b); }); var defaults = { auth: { user: opts.key, pass: opts.secret }, headers: { 'X-Sponsor-Id': opts.sponsor }, json: true }; var getPatient = function(criteria, cb) { var defaultsCopy = _.cloneDeep(defaults); _.extend(defaultsCopy, { qs: { where: JSON.stringify(criteria) } }); request.get(url, defaultsCopy, handler(cb)); }; var setIdentifier = function(erxId, identifier, cb) { var defaultsCopy = _.cloneDeep(defaults); _.extend(defaultsCopy, { json: { identifier: identifier } }); request.put( url + erxId + '/external_identifiers', defaultsCopy, handler(cb) ); }; var updateAllergies = function(identifier, allergies, cb) { var defaultsCopy = _.cloneDeep(defaults); _.extend(defaultsCopy, { json: { allergies: allergies } }); request.put( url + identifier + '/allergies', defaultsCopy, handler(cb) ); }; var setAvatar = function(identifier, fileReadStream, cb) { var r = request.post(url + identifier + '/avatar', defaults, handler(cb)); var form = r.form(); form.append('file', fileReadStream); }; return Object.freeze({ getPatient: getPatient, setIdentifier: setIdentifier, updateAllergies: updateAllergies, setAvatar: setAvatar }); };