diff --git a/.gitignore b/.gitignore index 5b14f83e..b4f2ef43 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -Oscar_Credentials.md +docs/Oscar_Credentials.md +scripts/test_oscarhost.js +scripts/oscarhost/private/ # iOS / Apple # =========== diff --git a/package.json b/package.json index c27b2978..61944f30 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "postinstall": "bower install --config.interactive=false; grunt build" }, "dependencies": { - "async": "^1.4.0", + "async": "^1.4.2", "body-parser": "~1.9.0", "bower": "~1.3.8", "chalk": "~1.0.0", @@ -78,6 +78,8 @@ "passport-local": "~1.0.0", "passport-twitter": "~1.0.2", "raven": "^0.8.1", + "request": "^2.60.0", + "request-promise": "^0.4.3", "satelize": "~0.1.1", "should": "~4.1.0", "supertest": "~0.14.0", diff --git a/scripts/oscarhost/OscarSecurity.js b/scripts/oscarhost/OscarSecurity.js new file mode 100644 index 00000000..e61f603c --- /dev/null +++ b/scripts/oscarhost/OscarSecurity.js @@ -0,0 +1,23 @@ +"use strict"; + +var crypto = require('crypto'), + passwordDigest = require('soap/lib/utils').passwordDigest; + +function WSSecurity(username, password) { + this._username = username; + this._password = password; +} + +WSSecurity.prototype.toXML = function() { + var password = "" + this._password + ""; + + return "" + + "" + + "" + this._username + "" + + password + + "" + + ""; + +}; + +module.exports = WSSecurity; diff --git a/scripts/oscarhost/test_oscarhost.js b/scripts/oscarhost/test_oscarhost.js new file mode 100644 index 00000000..cf9f2467 --- /dev/null +++ b/scripts/oscarhost/test_oscarhost.js @@ -0,0 +1,52 @@ +var soap = require('soap'), + request = require('request'), + async = require('async'), + OscarSecurity = require('./OscarSecurity'); + + +var url_login = 'http://someurl.com/ws?wsdl', + url_demo = 'http://someurl.com/ws?wsdl', + args_demo = {arg0: 12351235}, + args_login = {arg0: 'mylogin', arg1: 'mypassword'}; + +var options = { + ignoredNamespaces: { + namespaces: ['targetNamespace', 'typedNamespace'], + override: true + } +} + +async.waterfall([ + function (callback) { + soap.createClient(url_login, options, function(err, client) { + client.login(args_login, function (err, result) { + if(err) callback(err); + callback(null, result.return); + }); + + }); + }, + function (security_obj, callback) { + + console.log(security_obj); + + soap.createClient(url_demo, options, function(err, client) { + client.setSecurity(new OscarSecurity(security_obj.securityId, security_obj.securityTokenKey) ); + + client.getDemographic(args_demo, function (err, result) { + if(err) callback(err); + console.log(result); + callback(null, 'DemographicService'); + }); + + }); + } +], function(err, result) { + if(err) throw err; + + console.log(result); +}); + + + +