Skip to content

Instantly share code, notes, and snippets.

@jameskyle
Created April 7, 2014 23:40
Show Gist options
  • Select an option

  • Save jameskyle/10073967 to your computer and use it in GitHub Desktop.

Select an option

Save jameskyle/10073967 to your computer and use it in GitHub Desktop.
var http = require("http");
var url = require('url');
var queryString = require('querystring')
var API_KEY = "THE_API_KEY";
var FEED = "THE_FEED_ID";
var STREAM = "THE_STREAM_NAME";
var NUM_ATTENDEES = 0
http.createServer(function(request, response) {
var queryURL = url.parse(request.url);
var pathname = queryURL.pathname;
// Get event data from
if (pathname != "/app/casablanca/attendees") {
response.writeHead(404);
response.end();
}
if(request.method != "POST") {
response.writeHead(400);
response.end();
}
if(request.headers['content-type'] != 'application/json') {
response.writeHead(415);
response.end();
}
// Received POST with proper mediatype, process POST
var data = "";
request.on("data", function (chunk) {
data += chunk;
});
request.on("end", function () {
var jdata = JSON.parse(data);
console.log("Received Payload: " + jdata.attendee);
if (jdata.attendee == 1) {
NUM_ATTENDEES += 1;
} else if (jdata.attendee == -1 && NUM_ATTENDEES > 0
) {
NUM_ATTENDEES -= 1;
}
});
var options = {
hostname: 'api-m2x.att.com',
port: 80,
path: '/v1/feeds/' + FEED + '/streams/' + STREAM,
method: 'PUT'
};
var req = http.request(options, function (resp){
console.log('STATUS: ' + resp.statusCode);
var data = '';
resp.on("data", function (chunk) {
data += chunk;
});
resp.on("end", function () {
console.log(data);
});
});
var payload = JSON.stringify({value: NUM_ATTENDEES})
req.setHeader("Content-Type", "application/json");
req.setHeader("Content-Length", payload.length);
req.setHeader("X-M2X-KEY", API_KEY);
req.write(payload);
req.end();
response.writeHead(204);
response.end();
}).listen(8888);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment