forked from herzi/ayah.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
62 lines (54 loc) · 1.74 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/**
* ajah.js - the main module
*/
var AYAH = {};
var https = require('https');
var querystring = require('querystring');
var publisherKey;
var scoringKey;
var webServiceHost = "ws.areyouahuman.com";
AYAH.configure = function (newPublisherKey, newScoringKey) {
publisherKey = newPublisherKey;
scoringKey = newScoringKey;
};
AYAH.getPublisherHTML = function () {
var url = 'https://' + webServiceHost + "/ws/script/" + encodeURI(publisherKey);
return "<div id='AYAH'></div><script src='" + url +"' type='text/javascript' language='JavaScript'></script>";
// FIXME: try w/ async js loading
};
AYAH.getScore = function (sessionSecret, callback) {
var data = querystring.stringify({session_secret: encodeURI(sessionSecret), scoring_key: scoringKey});
https.request({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
host: webServiceHost,
method: "POST",
path: "/ws/scoreGame"
}, function (response) {
if (response.statusCode !== 200) {
return callback(new Error("the server returned status code " + response.statusCode), null);
}
var buf = '';
response.on('data', function (data) {
buf += data;
});
response.on('error', function (error) {
callback(error, null);
});
response.on('end', function () {
buf = JSON.parse(buf);
if (buf.status_code !== 1) {
return callback(new Error("the server sent an error response: " + buf.status_code), null);
}
callback(null, buf);
});
}).on('error', function (error) {
return callback(error, null);
}).end(data);
};
AYAH.recordConversion = function (sessionSecret) {
return '<iframe style="border: none;" height="0" width="0" src="https://' +
webServiceHost + '/ws/recordConversion/' + encodeURI(sessionSecret) + '"></iframe>';
};
module.exports = AYAH;