Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
15748 anikendra 1
var express = require('express');
2
var app = express();
3
var cors = require('cors');
4
var bodyParser = require('body-parser');
5
var fs = require("fs");
6
var multer  = require('multer');
7
var cookieParser = require('cookie-parser')
8
cassandra = require('cassandra-driver');
9
 
10
var client = new cassandra.Client({ contactPoints: ['localhost'], keyspace: 'profitmandi'});
11
 
12
// Create application/x-www-form-urlencoded parser
13
var urlencodedParser = bodyParser.urlencoded({ extended: false })
14
var whitelist = ['http://localdtr', 'http://api.profittill.com','http://staging.profittill.com','http://localhost:8100','http://mobilehotindia.com'];
15
 
16
var corsOptions = {
17
  origin: function(origin, callback){
18
    var originIsWhitelisted = whitelist.indexOf(origin) !== -1;
19
    callback(null, originIsWhitelisted);
20
  }
21
};
22
 
23
app.use(express.static('public'));
24
app.use(multer({ dest: '/tmp/'}));
25
app.use(cookieParser());
26
app.use(cors(corsOptions));
27
 
28
 
29
app.get('/index.html', function (req, res) {
30
   res.sendFile( __dirname + "/" + "index.html" );
31
})
32
 
33
app.get('/process_get', function (req, res) {
34
 
35
   // Prepare output in JSON format
36
   response = {
37
       first_name:req.query.first_name,
38
       last_name:req.query.last_name
39
   };
40
   //console.log(response);
41
   res.end(JSON.stringify(response));
42
})
43
 
44
app.post('/identify', urlencodedParser, function (req, res) {
45
 
46
   // Prepare output in JSON format
47
   response = {
48
       	id:req.body.id,
49
       	email:req.body.email,
50
		name:req.body.name,
51
		mobilenumber:req.body.mobilenumber,
52
		referral_code:req.body.referral_code
53
   };
54
	var query = "INSERT INTO users(id,email,name,mobilenumber,referral_code) values(?,?,?,?,?)";
55
	var params = [response.id,response.email,response.name,response.mobilenumber,response.referral_code];
56
	console.log(params);
57
	client.execute(query, params,{prepare: true}, function(err, result) {
58
		if(err){
59
			console.log(err);
60
			var result = {success:false,message:err};
61
			res.end(JSON.stringify(result));
62
		}else{
63
			var result = {success:true,message:'User Registered'};
64
			res.end(JSON.stringify(result));
65
			console.log('User Registered');
66
		}
67
	});
68
})
69
 
70
app.post('/track', urlencodedParser, function (req, res) {
71
   	// Prepare output in JSON format
72
   	response = {
73
   		user_id:req.body.user_id,
74
       	category:req.body.category,
75
       	action:req.body.action,
76
		label:req.body.label,
77
		properties:req.body.properties
78
   	};
79
	var d = new Date();
80
	var date = d.toYMD();
81
   	var query = "INSERT INTO user_activities(user_id,date) VALUES("+response.user_id+",'"+date+"')";
82
	console.log(query);
83
	client.execute(query, null,{}, function(err, result) {
84
		if(err){
85
			console.log('User activity could not tracked. '+err);
86
		}		
87
	});
88
	if(response.properties && response.properties.length > 0)	{
89
		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()+"')";
90
	}else{
91
		var query = "INSERT INTO events(user_id,category,action,label,time) values("+response.user_id+",'"+response.category+"','"+response.action+"','"+response.label+"','"+new Date().toISOString()+"')";
92
	}
93
	console.log(query);
94
	client.execute(query, null,{}, function(err, result) {
95
		if(err){
96
			var result = {success:false,message:'Event could not tracked'};
97
			res.end(JSON.stringify(result));
98
			console.log('Event could not tracked. '+err);
99
		}else{
100
			var result = {success:true,message:'Event tracked'};
101
			res.end(JSON.stringify(result));
102
			//console.log('Event tracked');
103
		}		
104
	});
105
})
106
 
107
// This responds with "Hello World" on the homepage
108
app.get('/', function (req, res) {
109
   //console.log("Got a GET request for the homepage");
110
   res.send('Hello GET');
111
})
112
 
113
 
114
// This responds a POST request for the homepage
115
app.post('/', function (req, res) {
116
   //console.log("Got a POST request for the homepage");
117
   console.log("Cookies: ", req.cookies)
118
   res.send('Hello POST');
119
})
120
 
121
// This responds a GET request for the /list_users page.
122
app.get('/list_users', function (req, res) {
123
	var d = new Date();
124
	var date = d.toYMD();
125
	var query = "SELECT user_id FROM user_activities WHERE date ='"+date+"'";
126
	client.execute(query, {},{prepare: true}, function(err, result) {
127
		if(err){
128
			console.log(err);
129
			res.send(err);
130
		}else{
131
			var activeusers = [];
132
			for(var i in result.rows) {
133
				activeusers.push(result.rows[i].user_id);
134
			}
135
			if(activeusers && activeusers.length>0) {
136
				var query = "SELECT * FROM users WHERE id IN ("+activeusers.join(',')+")";
137
			} else{
138
				var query = "SELECT * FROM users LIMIT 50"; 
139
			}
140
			var params = [];	
141
			if(typeof req.query.id != 'undefined'){
142
				var query = "SELECT * FROM users WHERE id = ?";
143
				params = [req.query.id];
144
			}
145
			//console.log(query);
146
			//console.log(params);
147
			client.execute(query, params,{prepare: true}, function(err, result) {
148
				if(err){
149
					console.log(err);
150
					res.send(err);
151
				}
152
				//console.log(JSON.stringify(result.rows));
153
				res.send(JSON.stringify(result.rows));
154
			});
155
		}
156
	});
157
})
158
 
159
// This responds a GET request for the /list_events page.
160
app.get('/list_events', function (req, res) {
161
	var d = new Date();
162
	var date = d.toYMD();
163
	var query = "SELECT user_id FROM user_activities WHERE date ='"+date+"'";
164
	client.execute(query, {},{prepare: true}, function(err, result) {
165
		if(err){
166
			console.log(err);
167
			res.send(err);
168
		}else{
169
			var activeusers = [];
170
			for(var i in result.rows) {
171
				activeusers.push(result.rows[i].user_id);
172
			}
173
			if(activeusers && activeusers.length>0) {
174
				var query = "SELECT * FROM events WHERE user_id IN ("+activeusers.join(',')+") ORDER BY time DESC LIMIT 50";
175
			} else {
176
				var query = "SELECT * FROM events LIMIT 50";
177
			}
178
			var params = [];	
179
			if(typeof req.query.user_id != 'undefined'){
180
				var query = "SELECT * FROM events WHERE user_id = ? ORDER BY time DESC";
181
				params = [req.query.user_id];
182
			}
183
			console.log(query);
184
			//console.log(params);
185
			client.execute(query, params,{prepare: true}, function(err, result) {
186
				if(err){
187
					console.log(err);
188
					res.send(err);
189
				}
190
				//console.log('got user profile with email ' + result.rows[0].email);
191
				//console.log(JSON.stringify(result.rows));
192
				res.send(JSON.stringify(result.rows));
193
			});
194
		}
195
	});
196
})
197
 
198
// This responds a GET request for abcd, abxcd, ab123cd, and so on
199
app.post('/update_profile', urlencodedParser, function(req, res) {   
200
   // Prepare output in JSON format
201
   	response = {
202
       	id:req.body.id,
203
       	profile:req.body.profile		
204
   	};
205
	var query = "UPDATE users SET profile = "+response.profile+" WHERE id = "+response.id;
206
	// var params = [response.profile,response.id];
207
	console.log(query);
208
	client.execute(query, null,{}, function(err, result) {
209
		if(err){
210
			console.log(err);
211
			var result = {success:false,message:'User not updated. Try again later.'};
212
			res.end(JSON.stringify(result));
213
		}else{
214
			var result = {success:true,message:'User Updated'};
215
			res.end(JSON.stringify(result));
216
			//console.log('User Updated');
217
		}
218
	});
219
})
220
 
221
var server = app.listen(8081, function () {
222
 
223
  var host = server.address().address
224
  var port = server.address().port
225
 
226
  console.log("Example app listening at http://%s:%s", host, port)
227
 
228
})
229
 
230
function generateUUID(){
231
    var d = new Date().getTime();
232
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
233
        var r = (d + Math.random()*16)%16 | 0;
234
        d = Math.floor(d/16);
235
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
236
    });
237
    return uuid;
238
};
239
 
240
Date.prototype.toYMD = Date_toYMD;
241
function Date_toYMD() {
242
	var year, month, day;
243
	year = String(this.getFullYear());
244
	month = String(this.getMonth() + 1);
245
	if (month.length == 1) {
246
	    month = "0" + month;
247
	}
248
	day = String(this.getDate());
249
	if (day.length == 1) {
250
	    day = "0" + day;
251
	}
252
	return year + "-" + month + "-" + day;
253
}