Example #1
0
	exports.register = function(user_name,phone_number,email,password,gcm_id,callback) {

	//var x = email;
	//if(!(x.indexOf("@")<1 || x.lastIndexOf(".")<x.indexOf("@")+2 || x.lastIndexOf(".")+2>=x.length)){
		//if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && password.length > 4 && password.match(/[0-9]/) && password.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)) {

			//console.log('user_name   ' + user_name+'   phone_number    '+phone_number+'   email   '+ email+ '   password    '+ password );

			var temp =rand(160, 36);
			var newpass = temp + password;
			var token = crypto.createHash('sha512').update(aavara +rand).digest("hex");
			var hashed_password = crypto.createHash('sha512').update(newpass).digest("hex");

			var newuser = new models.User({ 
				token: token,
				user_name: user_name,
				phone_number: phone_number,
				email: email, 
				gcm_id : gcm_id,
				shared_location : "1",
				allowed_to_post : "1",
				upvotes : 0,
				downvotes : 0,
				//history: JSON.parse(history),
				//location : [lat, long],
				hashed_password: hashed_password,
				salt :temp 
			});

			newuser.save(function (err) {
				 		console.log("here we go");	
				 		callback({'response' : "Succesfully registered !"});	
					});

			/*models.User.find({phone_number: phone_number},function(err,users){

				var len = users.length;

				if(len == 0){
				 	
				 	callback({'response':"yes"});
				}else{

					callback({'response':"no"});
				}
			});

		}else{

				callback({'response':"Password Weak"});
		
			}
		}else{

			callback({'response':"Email Not Valid"});
		
		}*/
	}
Example #2
0
	app.post('/allContacts',function(req,res){
   		models.User.find({},function(err,reports){
     	console.log(reports);

      	res.json(reports);
   	});
	});
Example #3
0
    models.User.find({email: email},function(err,users){

      if(users.length != 0){


        models.User.findOne({ email: email }, function (err, doc){
          doc.temp_str= temp;
          doc.save();

          var mailOptions = {
            from: "*****@*****.**", 
            to: email,
            subject: "Reset Password ", 
            text: "Hello "+email+".  Code to reset your Password is "+temp+".\n\nRegards,\nTeam Travey.",
          }

          smtpTransport.sendMail(mailOptions, function(error, response){
            if(error){

              callback({'response':"Error While Resetting password. Try Again !",'res':false});
              console.log(response + email);

            }else{

              callback({'response':"Check your Email and enter the verification code to reset your Password.",'res':true});

            }
          });
        });
      }else{

        callback({'response':"Email Does not Exists.",'res':false});

      }
    });
Example #4
0
	app.post('/setGcmid',function(req,res){
   		models.User.find({phone_number: req.body.phone_number},function(err,reports){
   			reports[0].gcm_id = req.body.gcm_id;
   			reports[0].save();
     		console.log(reports);

      		res.json(reports);
   		});
	});
Example #5
0
app.post('/leaderBoard',function(req,res) {
   var options = {
      "limit": 20,
      "sort": [['upvotes', 'desc'], ['downvotes', 'asc']]
   };

   models.User.find({}, function (err, docs) {
      console.log("retrieved records:");
      console.log(docs);
      res.json(docs);
   });
});
Example #6
0
			models.Report.find({_id:report_id},function(error, reports){
			if(delet == 1){
				var a = reports[0].upvotes;
				reports[0].upvotes=a-1;
			}
			var b = reports[0].downvotes;
	      	reports[0].downvotes=b+1;
	      	reports[0].save(function(err,resp) {
	        	if(err) {
		            console.log(err);
	            
	        	} else {
	        		callback({'res' : true});
		            console.log("done");
	        	}
	    	});
	      

	    	//User got downvoted
	      	var phone_number=reports[0].phone_number;
	      	var ban = 0;
	      	var g_id;
	      	models.User.find({phone_number:phone_number},function(err,users2){
		      	console.log(users2[0]);
	         	var down=users2[0].downvotes;
	         	if(delet == 1){
	         		var c = users2[0].upvotes;
	         		users2[0].upvotes=c-1;
	         	}
	         	users2[0].downvotes=down+1;
	         	if (users2[0].downvotes - users2[0].upvotes > 9 ){
	         		users2[0].allowed_to_post = "0";
	         		ban = 1;
	         		g_id = users2[0].gcm_id;
	         	}
	         	users2[0].save(function(err,resp) {
	        		if(err) {
			            console.log(err);
	            		
	        		} else {
	        			//users downvoted_report get one id of downvoted event
						users[0].downvoted_posts.push(report_id);
						users[0].save();
						callback({'res' : true});
			            console.log("done");
	        		}
	    		});
	      	});
	      	
	      	
	      	
		    
		    });
Example #7
0
	app.post('/ckeckExistNumber', function(req, res){
		models.User.find({phone_number: req.body.phone_number},function(err,users){

				var len = users.length;

				if(len == 0){
				 	res.json({'response':"yes"});
				}else{

					res.json({'response':"no"});
				}
			});
	});
Example #8
0
exports.historyAdd = function(phone_number,history,callback) {

    models.User.update(
        { phone_number: phone_number },
        { $push: { history: history } }


    );
    console.log("history added");
    callback({'response':"History updated succesfully",'res':false});


}
Example #9
0
app.post('/shareLocation',function(req,res){
	models.User.find({'phone_number': req.body.phone_number}, function(error,reports){
		var fromu = reports[0].user_name;
   		var fromn = "req.body.fromn";
   						
		var title = phone_number;

		requests.send(fromn, fromu, title,reports[0].gcm_id, function (found) {
      		console.log("location send");
      		res.json(found);
      	});
		//res.json(reports[0].location);
	});
});
Example #10
0
app.post('/shareLocationWithFriend', function(req, res){
	models.User.find({phone_number : req.body.phone_number}, function(err, users){
		var fromu = "req.body.phone_number";
   		var fromn = "req.body.fromn";
   						
   		var title = "Share your location to"+ req.body.user_name;

			requests.send(fromn, fromu, title,users[0].gcm_id, function (found) {
      			console.log(users[0].phone_number );
      			console.log(users[0].gcm_id);
      			console.log(found);
      			res.json(found);
      		});	
			//res.json(users[0].image);
			//console.log(users[0].image);
	});
});
Example #11
0
  exports.cpass = function(id,opass,npass,callback) {

    var temp1 =rand(160, 36);
    var newpass1 = temp1 + npass;
    var hashed_passwordn = crypto.createHash('sha512').update(newpass1).digest("hex");

    models.User.find({token: id},function(err,users){

      if(users.length != 0){

        var temp = users[0].salt;
        var hash_db = users[0].hashed_password;
        var newpass = temp + opass;
        var hashed_password = crypto.createHash('sha512').update(newpass).digest("hex");


        if(hash_db == hashed_password){
          if (npass.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && npass.length > 4 && npass.match(/[0-9]/) && npass.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)) {

            models.User.findOne({ token: id }, function (err, doc){
              doc.hashed_password = hashed_passwordn;
              doc.salt = temp1;
              doc.save();

              callback({'response':"Password Sucessfully Changed",'res':true});

            });
          }else{ 

            callback({'response':"New Password is Weak. Try a Strong Password !",'res':false});

          }
        }else{

          callback({'response':"Passwords do not match. Try Again !",'res':false});

        }
      }else{

        callback({'response':"Error while changing password",'res':false});

      }

    });
  }
Example #12
0
app.post('/getLocation',function(req,res){
	models.User.find({'phone_number': req.body.phone_number}, function(error,reports){
		if(reports[0].shared_location == "1"){
			res.json(reports[0].location);
		}else{
			var fromu = "req.body.phone_number";
   			var fromn = "req.body.fromn";
   						
			var title = "Share your location";

			requests.send(fromn, fromu, title,reports[0].gcm_id, function (found) {
      			console.log("location send");
      			res.json(found);
      		});	
		}
		res.json();
	});
});
Example #13
0
			models.Report.find({_id:report_id},function(error, reports){
			if(delet == 1){
				var b = reports[0].downvotes;
				reports[0].downvotes=b-1;
			}
			var a = reports[0].upvotes;
	      	reports[0].upvotes=a+1;
	      	reports[0].save(function(err,resp) {
	        	if(err) {
		            console.log(err);
	            
	        	} else {
	        		callback({'res' : true});
		            console.log("done");
	        	}
	    	});
	      

	    	//User got upvoted
	      	var phone_number=reports[0].phone_number;
	      	models.User.find({phone_number:phone_number},function(err,users2){
		      	console.log(users2[0]);
	         	var up=users2[0].upvotes;
	         	if(delet == 1){
	         		var c = users2[0].downvotes;
	         		users2[0].downvotes=c-1;
	         	}
	         	users2[0].upvotes=up+1;
	         	users2[0].save(function(err,resp) {
	        		if(err) {
			            console.log(err);
	            		
	        		} else {
	        			//users upvoted_report get one id of upvoted event
						users[0].upvoted_posts.push(report_id);
						users[0].save();
						callback({'res' : true});
			            console.log("done");
	        		}
	    		});
	      	});
		    
		});
Example #14
0
	newReport.save(function (err) {
		callback({'response':"Sucessful"});


		var query = models.User.find({'location': {
	  						$near: [lat,long],
	  						$maxDistance: distance
	  						}
						});

						query.exec(function (err, city) {
	  						if (err) {
	    						console.log(err);
	    						throw err;
	  						}

							  else{

							  		for (var i = city.length - 1; i >= 0; i--) {
							  			var fromu = "req.body.from";
   										var fromn = "req.body.fromn";
   						
							   			var title = tag;


   										requests.send(fromn, fromu, title,city[i].gcm_id, function (found) {
      										console.log("hii");
      										//res.json(found);
      									});
							  		}
							  		
								    console.log('Cant save: Found city:' + city);
							  }
	
	 						

						});


		
		console.log("Added");
	});
Example #15
0
app.post('/friendsNearBy',function(req,res){
   var query = models.User.find({'location': {
      $near: [req.body.lat,req.body.long],
      $maxDistance: distance
   }
   });

   query.exec(function (err, city) {
      if (err) {
         console.log(err+ "what is this");
         throw err;
      }
      else {
         console.log('hi this is friends near by '+ city);
         res.json(city);
      }

   });

});
Example #16
0
exports.historyAdd = function(phone_number,history,callback) {

    /*models.User.update(
        { phone_number: phone_number },
        { $push: { history: JSON.parse(history) } }


    );*/

    models.User.find({phone_number: phone_number},function(err,reports){
     	reports[0].history.push(JSON.parse(history));
     	reports[0].save();
     	callback({'response':"History updated succesfully",'res':true});
     	console.log("history added");
    });

    //console.log("history added");
    //callback({'response':"History updated succesfully",'res':true});


}
Example #17
0
  exports.respass_chg = function(email,code,npass,callback) {


    models.User.find({email: email},function(err,users){

      if(users.length != 0){

        var temp = users[0].temp_str;
        var temp1 =rand(160, 36);
        var newpass1 = temp1 + npass;
        var hashed_password = crypto.createHash('sha512').update(newpass1).digest("hex");

        if(temp == code){
          if (npass.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && npass.length > 4 && npass.match(/[0-9]/) && npass.match(/.[!,@,#,$,%,^,&,*,?,_,~]/)) {
            models.User.findOne({ email: email }, function (err, doc){
            doc.hashed_password= hashed_password;
            doc.salt = temp1;
            doc.temp_str = "";
            doc.save();

            callback({'response':"Password Sucessfully Changed",'res':true});

          });
          }else{

            callback({'response':"New Password is Weak. Try a Strong Password !",'res':false});

          }
        }else{

          callback({'response':"Code does not match. Try Again !",'res':false});

        }
      }else{

      callback({'response':"Error",'res':true});

    }
  });
}
Example #18
0
exports.downvote = function(phone_number,report_id,callback) {

	var checked = 0;
	var delet = 0;

	models.User.find({phone_number : phone_number},function(error, users){

		//Checking if report id downvoted before?
		for (var i = users[0].downvoted_posts.length - 1; i >= 0; i--) {
			if(users[0].downvoted_posts[i] == report_id){
				callback({'res' : false,'ban': false});
				console.log({'response' : "Can only downvote once"});
				checked = 1;
			}
		}

		//deleting id of upvoted report
		for (var i = users[0].upvoted_posts.length - 1; i >= 0; i--) {
			if(users[0].upvoted_posts[i] == report_id){
				users[0].upvoted_posts.splice(i, 1);
				delet = 1;
			}
		}
    

		if(checked == 0){
			//report got downvoted
			models.Report.find({_id:report_id},function(error, reports){
			if(delet == 1){
				var a = reports[0].upvotes;
				reports[0].upvotes=a-1;
			}
			var b = reports[0].downvotes;
	      	reports[0].downvotes=b+1;
	      	reports[0].save(function(err,resp) {
	        	if(err) {
		            console.log(err);
	            
	        	} else {
	        		callback({'res' : true});
		            console.log("done");
	        	}
	    	});
	      

	    	//User got downvoted
	      	var phone_number=reports[0].phone_number;
	      	var ban = 0;
	      	var g_id;
	      	models.User.find({phone_number:phone_number},function(err,users2){
		      	console.log(users2[0]);
	         	var down=users2[0].downvotes;
	         	if(delet == 1){
	         		var c = users2[0].upvotes;
	         		users2[0].upvotes=c-1;
	         	}
	         	users2[0].downvotes=down+1;
	         	if (users2[0].downvotes - users2[0].upvotes > 9 ){
	         		users2[0].allowed_to_post = "0";
	         		ban = 1;
	         		g_id = users2[0].gcm_id;
	         	}
	         	users2[0].save(function(err,resp) {
	        		if(err) {
			            console.log(err);
	            		
	        		} else {
	        			//users downvoted_report get one id of downvoted event
						users[0].downvoted_posts.push(report_id);
						users[0].save();
						callback({'res' : true});
			            console.log("done");
	        		}
	    		});
	      	});
	      	
	      	
	      	
		    
		    });
		    	callback({'res' : true});
		}
		//callback({'res' : false});
	});
}
Example #19
0
app.post('/history', function(req,res){
	models.User.find({phone_number : req.body.phone_number}, function(err, users){
			res.json(users[0]);
	});
});
Example #20
0
exports.login = function(phone_number,password,gcm_id,callback) {

	models.User.find({phone_number: phone_number},function(err,users){

		if(users.length != 0){

			var temp = users[0].salt;
			var hash_db = users[0].hashed_password;
			var id = users[0].token;
			var email = users[0].email;
			var u_name = users[0].user_name;
			var newpass = temp + password;
			var shared_location = users[0].shared_location;
			var hashed_password = crypto.createHash('sha512').update(newpass).digest("hex");
			var grav_url = gravatar.url(users[0].email, {s: '200', r: 'pg', d: '404'});
			users[0].gcm_id = gcm_id;
			users[0].save();
			console.log(users[0].gcm_id +  gcm_id);

			if(hash_db == hashed_password){

				callback({'response':"Login Sucess",'res':true,'token':id,'grav':grav_url,'email': email,'user_name':u_name,'shared_location': shared_location});

			}else{

				callback({'response':"Invalid Password",'res':false});

			}
		}else {

			callback({'response':"User not exist",'res':false});

		}
	});
}
Example #21
0
app.post('/getImage', function(req, res){
	models.User.find({phone_number : req.body.phone_number}, function(err, users){
			res.json(users[0].image);
			//console.log(users[0].image);
	});
});