UNPKG

node-uuap

Version:
46 lines (40 loc) 1.43 kB
/** * @file 获取uic数据 * @author liulangyu(liulangyu@baidu.com) */ var config = require('./config'); var soap = require('soap'); /** * 各种服务数据获取 * 详细接口见文档:http://wiki.baidu.com/pages/viewpage.action?pageId=65311151 * * @public * @param {string} serviceName 服务名称,uuap提供的服务接口 * @param {string} interfaceName 接口名称,每个服务提供多个接口 * @param {Object} params 接口参数,多参数形式{arg0: '', arg1: ''} * @param {Function} cb 回调 * @example service('getUserByUsername', {arg0: 'liulangyu'}, function () {}) */ exports.uic = function (serviceName, interfaceName, params, cb) { // 简单验证下参数 var len = arguments.length; if (len !== 4) { throw new Error('params wrong: required 4, but get ' + len); } // 验证serviceName if (!~config.services.indexOf(serviceName)) { throw new Error('no such service: `' + serviceName + '`, please check the doc'); } var url = config.wsUrl + serviceName + '?wsdl'; soap.createClient(url, function (err, client) { if (err) { throw new Error('error create new soap client.' + err.toString()); } else { client.addSoapHeader({appKey: config.appKey}); client[interfaceName](params, function (err, result) { cb(result); }); } }); };