| 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 |
}
|