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);
+});
+
+
+
+