Skip to content

Commit 9c73842

Browse files
Merge pull request #6 from optimizely/haley/new-optimizely
Incorporate New Optimizely endpoint in event dispatcher and bump version
2 parents 5699fc5 + 79a99f1 commit 9c73842

File tree

4 files changed

+50
-25
lines changed

4 files changed

+50
-25
lines changed

CHANGELOG

+6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
-------------------------------------------------------------------------------
2+
0.1.4
3+
-------------------------------------------------------------------------------
4+
* Add functionality for New Optimizely endpoint.
5+
-------------------------------------------------------------------------------
6+
17
-------------------------------------------------------------------------------
28
0.1.3
39
-------------------------------------------------------------------------------

dist/optimizely.min.js

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/plugins/event_dispatcher/index.js

+36-17
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,54 @@
11
var _ = require('lodash/core');
22
var bluebird = require('bluebird');
33

4+
var POST_METHOD = 'POST';
5+
var GET_METHOD = 'GET';
6+
47
module.exports = {
58
/**
69
* Sample event dispatcher implementation for tracking impression and conversions
710
* Users of the SDK can provide their own implementation
8-
* @param {string} url
9-
* @param {Object} params
11+
* @param {Object} eventObj
1012
* @return {Promise<Object>}
1113
*/
12-
dispatchEvent: function(url, params) {
13-
return new bluebird(function(resolve, reject) {
14-
// add param for cors headers to be sent by the log endpoint
15-
url += '?wxhr=true';
16-
if (params) {
17-
url += '&' + toQueryString(params);
18-
}
14+
dispatchEvent: function(eventObj) {
15+
var url = eventObj.url;
16+
var params = eventObj.params;
17+
18+
if (eventObj.httpVerb === POST_METHOD) {
19+
return new bluebird(function(resolve, reject) {
20+
21+
var req = new XMLHttpRequest();
22+
req.open(POST_METHOD, url, true);
23+
req.setRequestHeader('Content-Type', 'application/json');
24+
req.addEventListener('load', function (evt) {
25+
var responseObj = evt.target.responseText;
26+
resolve(responseObj);
27+
});
28+
req.send(JSON.stringify(params));
29+
})
30+
} else {
31+
return new bluebird(function (resolve, reject) {
32+
// add param for cors headers to be sent by the log endpoint
33+
url += '?wxhr=true';
34+
if (params) {
35+
url += '&' + toQueryString(params);
36+
}
1937

20-
var req = new XMLHttpRequest();
21-
req.open('GET', url, true);
22-
req.addEventListener('load', function(evt) {
23-
var responseObj = JSON.parse(evt.target.responseText);
24-
resolve(responseObj);
38+
var req = new XMLHttpRequest();
39+
req.open(GET_METHOD, url, true);
40+
req.addEventListener('load', function (evt) {
41+
var responseObj = JSON.parse(evt.target.responseText);
42+
resolve(responseObj);
43+
});
44+
req.send();
2545
});
26-
req.send();
27-
});
46+
}
2847
},
2948
};
3049

3150
var toQueryString = function(obj) {
32-
return _.map(obj, function(v, k){
51+
return _.map(obj, function(v, k) {
3352
return encodeURIComponent(k) + '=' + encodeURIComponent(v);
3453
}).join('&');
3554
};

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "optimizely-client-sdk",
3-
"version": "0.1.3",
3+
"version": "0.1.4",
44
"description": "Javascript SDK for client testing",
55
"main": "index.js",
66
"scripts": {
@@ -21,7 +21,7 @@
2121
"dependencies": {
2222
"bluebird": "^3.4.0",
2323
"lodash": "^4.13.1",
24-
"optimizely-server-sdk": "^0.1.3"
24+
"optimizely-server-sdk": "^0.1.4"
2525
},
2626
"devDependencies": {
2727
"chai": "^3.5.0",

0 commit comments

Comments
 (0)