Blame | Last modification | View Log | RSS feed
var express = require('express');var app = express();var cors = require('cors');var bodyParser = require('body-parser');var fs = require("fs");var multer = require('multer');var cookieParser = require('cookie-parser')cassandra = require('cassandra-driver');var client = new cassandra.Client({ contactPoints: ['localhost'], keyspace: 'profitmandi'});// Create application/x-www-form-urlencoded parservar urlencodedParser = bodyParser.urlencoded({ extended: false })var whitelist = ['http://localdtr', 'http://api.profittill.com','http://staging.profittill.com','http://localhost:8100','http://mobilehotindia.com'];var corsOptions = {origin: function(origin, callback){var originIsWhitelisted = whitelist.indexOf(origin) !== -1;callback(null, originIsWhitelisted);}};app.use(express.static('public'));app.use(multer({ dest: '/tmp/'}));app.use(cookieParser());app.use(cors(corsOptions));app.get('/index.html', function (req, res) {res.sendFile( __dirname + "/" + "index.html" );})app.get('/process_get', function (req, res) {// Prepare output in JSON formatresponse = {first_name:req.query.first_name,last_name:req.query.last_name};//console.log(response);res.end(JSON.stringify(response));})app.post('/identify', urlencodedParser, function (req, res) {// Prepare output in JSON formatresponse = {id:req.body.id,email:req.body.email,name:req.body.name,mobilenumber:req.body.mobilenumber,referral_code:req.body.referral_code};var query = "INSERT INTO users(id,email,name,mobilenumber,referral_code) values(?,?,?,?,?)";var params = [response.id,response.email,response.name,response.mobilenumber,response.referral_code];console.log(params);client.execute(query, params,{prepare: true}, function(err, result) {if(err){console.log(err);var result = {success:false,message:err};res.end(JSON.stringify(result));}else{var result = {success:true,message:'User Registered'};res.end(JSON.stringify(result));console.log('User Registered');}});})app.post('/track', urlencodedParser, function (req, res) {// Prepare output in JSON formatresponse = {user_id:req.body.user_id,category:req.body.category,action:req.body.action,label:req.body.label,properties:req.body.properties};var d = new Date();var date = d.toYMD();var query = "INSERT INTO user_activities(user_id,date) VALUES("+response.user_id+",'"+date+"')";console.log(query);client.execute(query, null,{}, function(err, result) {if(err){console.log('User activity could not tracked. '+err);}});if(response.properties && response.properties.length > 0) {var query = "INSERT INTO events(user_id,category,action,label,properties,time) values("+response.user_id+",'"+response.category+"','"+response.action+"','"+response.label+"',"+response.properties+",'"+new Date().toISOString()+"')";}else{var query = "INSERT INTO events(user_id,category,action,label,time) values("+response.user_id+",'"+response.category+"','"+response.action+"','"+response.label+"','"+new Date().toISOString()+"')";}console.log(query);client.execute(query, null,{}, function(err, result) {if(err){var result = {success:false,message:'Event could not tracked'};res.end(JSON.stringify(result));console.log('Event could not tracked. '+err);}else{var result = {success:true,message:'Event tracked'};res.end(JSON.stringify(result));//console.log('Event tracked');}});})// This responds with "Hello World" on the homepageapp.get('/', function (req, res) {//console.log("Got a GET request for the homepage");res.send('Hello GET');})// This responds a POST request for the homepageapp.post('/', function (req, res) {//console.log("Got a POST request for the homepage");console.log("Cookies: ", req.cookies)res.send('Hello POST');})// This responds a GET request for the /list_users page.app.get('/list_users', function (req, res) {var d = new Date();var date = d.toYMD();var query = "SELECT user_id FROM user_activities WHERE date ='"+date+"'";client.execute(query, {},{prepare: true}, function(err, result) {if(err){console.log(err);res.send(err);}else{var activeusers = [];for(var i in result.rows) {activeusers.push(result.rows[i].user_id);}if(activeusers && activeusers.length>0) {var query = "SELECT * FROM users WHERE id IN ("+activeusers.join(',')+")";} else{var query = "SELECT * FROM users LIMIT 50";}var params = [];if(typeof req.query.id != 'undefined'){var query = "SELECT * FROM users WHERE id = ?";params = [req.query.id];}//console.log(query);//console.log(params);client.execute(query, params,{prepare: true}, function(err, result) {if(err){console.log(err);res.send(err);}//console.log(JSON.stringify(result.rows));res.send(JSON.stringify(result.rows));});}});})// This responds a GET request for the /list_events page.app.get('/list_events', function (req, res) {var d = new Date();var date = d.toYMD();var query = "SELECT user_id FROM user_activities WHERE date ='"+date+"'";client.execute(query, {},{prepare: true}, function(err, result) {if(err){console.log(err);res.send(err);}else{var activeusers = [];for(var i in result.rows) {activeusers.push(result.rows[i].user_id);}if(activeusers && activeusers.length>0) {var query = "SELECT * FROM events WHERE user_id IN ("+activeusers.join(',')+") ORDER BY time DESC LIMIT 50";} else {var query = "SELECT * FROM events LIMIT 50";}var params = [];if(typeof req.query.user_id != 'undefined'){var query = "SELECT * FROM events WHERE user_id = ? ORDER BY time DESC";params = [req.query.user_id];}console.log(query);//console.log(params);client.execute(query, params,{prepare: true}, function(err, result) {if(err){console.log(err);res.send(err);}//console.log('got user profile with email ' + result.rows[0].email);//console.log(JSON.stringify(result.rows));res.send(JSON.stringify(result.rows));});}});})// This responds a GET request for abcd, abxcd, ab123cd, and so onapp.post('/update_profile', urlencodedParser, function(req, res) {// Prepare output in JSON formatresponse = {id:req.body.id,profile:req.body.profile};var query = "UPDATE users SET profile = "+response.profile+" WHERE id = "+response.id;// var params = [response.profile,response.id];console.log(query);client.execute(query, null,{}, function(err, result) {if(err){console.log(err);var result = {success:false,message:'User not updated. Try again later.'};res.end(JSON.stringify(result));}else{var result = {success:true,message:'User Updated'};res.end(JSON.stringify(result));//console.log('User Updated');}});})var server = app.listen(8081, function () {var host = server.address().addressvar port = server.address().portconsole.log("Example app listening at http://%s:%s", host, port)})function generateUUID(){var d = new Date().getTime();var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = (d + Math.random()*16)%16 | 0;d = Math.floor(d/16);return (c=='x' ? r : (r&0x3|0x8)).toString(16);});return uuid;};Date.prototype.toYMD = Date_toYMD;function Date_toYMD() {var year, month, day;year = String(this.getFullYear());month = String(this.getMonth() + 1);if (month.length == 1) {month = "0" + month;}day = String(this.getDate());if (day.length == 1) {day = "0" + day;}return year + "-" + month + "-" + day;}