Advertisement
Guest User

Untitled

a guest
Jun 6th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var mongo = require('mongodb');
  2. var dl  = require('delivery');
  3. var client = require('socket.io').listen(8080).sockets;
  4.  
  5. mongo.MongoClient.connect('mongodb://127.0.0.1/WhatUpApp', function(err,db){
  6.     if(err) throw err;
  7.    
  8.     console.log("Le serveur est prêt.");
  9.    
  10.     var users_table = new Array();
  11.    
  12.     client.on('connection', function(socket){
  13.         socket.on('join', function(data){
  14.             var user_email = data.user_email,
  15.                 user_name = data.user_name,
  16.                 photo_option = data.photo_option,
  17.                 fpass = data.fpass,
  18.                 cpass = data.cpass;
  19.  
  20.             // check for empty fields
  21.             if (user_email === '' || cpass === '' || fpass === ''){
  22.                 socket.emit('alert', 'Whoops, you missed one!');
  23.                 return;
  24.             }
  25.  
  26.             // check for matching passwords
  27.             if (fpass !== cpass) {
  28.                 socket.emit('alert', 'Your passwords don\'t match.');
  29.                 return;
  30.             }
  31.  
  32.             // create a database variable
  33.             var users = db.collection('users');
  34.  
  35.             // create a variable to hold the data object
  36.             users.find().sort({_id: 1}).toArray(function(err, res){
  37.                 if(err) throw err;
  38.  
  39.                 // create a flag variable
  40.                 var newUser = user_email;
  41.  
  42.                 var doesUserExist = function(newUser, res) {
  43.                     var answer = false;
  44.                     if (res.length) {
  45.                         for(var i = 0; i < res.length && !answer; i++){
  46.                             if(newUser === res[i].user_email){
  47.                                 answer = true;
  48.                             }
  49.                         }
  50.                     }
  51.                     return answer;
  52.                 };
  53.  
  54.                 var found = doesUserExist(newUser, res);
  55.  
  56.                 if (!found){
  57.                     // if not found, push the user into the db
  58.                     users.insert({
  59.                         user_email: user_email,
  60.                         user_name: user_name,
  61.                         photo_option: photo_option,
  62.                         password: cpass
  63.                     }, function() {
  64.                         socket.emit('alert', 'Your account has been created');
  65.                         socket.emit('clear-login');
  66.                         return found;
  67.                     });
  68.                 } else {
  69.                     socket.emit('alert', 'Username already exists. Please use another one.');  
  70.                 }
  71.             });
  72.         });
  73.        
  74.         socket.on('login', function (data) {
  75.             console.log("login");
  76.             var check_email = data.user_email,
  77.                 check_password = data.user_password;
  78.  
  79.             if (check_email === '' || check_password === '') {
  80.                 socket.emit('erreur', 'Vous devez renseigner les deux champs.');
  81.             } else {
  82.                 var users = db.collection('users');
  83.                 users.find({'mail' : check_email}).toArray(function (err, res) {
  84.                     if (err) throw err;
  85.  
  86.                     if (res.length){
  87.                         if (res[0].password === check_password) {
  88.                             if (i = users_table.indexOf(res[0]._id) != -1){
  89.                                 users_table.push(socket);
  90.                             } else {
  91.                                 users_table[res[0]._id] = new Array(socket);
  92.                             }
  93.                             socket.emit('ok', res[0]._id);
  94.                             return;
  95.                         }
  96.                     }
  97.                    
  98.                     socket.emit('erreur', 'Identifiants incorrects.');
  99.                 });
  100.             }
  101.         });
  102.        
  103.         socket.on('discussions', function (data) {
  104.             if (!Check_id(data.id, socket)){
  105.                 return;
  106.             }
  107.             var discussions = db.collection("discussions");
  108.             discussions.find({ "users._id": new mongo.ObjectID(data.id) }).toArray(function (err, res) {
  109.                     if (err) throw err;
  110.  
  111.                     if (res.length){
  112.                         socket.emit('discussions', res);
  113.                     } else {
  114.                         console.log("non trouve");
  115.                     }
  116.                 });
  117.         });
  118.        
  119.         socket.on('upload_file', function (data) {
  120.             if (!Check_id(data.id, socket)){
  121.                 return;
  122.             }
  123.             var delivery = dl.listen(socket);
  124.             delivery.on('receive.start', function(fileUID){
  125.                 console.log('receiving a file');
  126.             });
  127.            
  128.             delivery.on('receive.success', function(file){
  129.                 if ()
  130.             }
  131.         });
  132.        
  133.         socket.on('compte_Update', function (data) {
  134.             if (!Check_id(data.id, socket)){
  135.                 return;
  136.             }
  137.            
  138.         });
  139.    
  140.     });
  141.    
  142.     function Check_id (id, socket){
  143.         if (id == null){
  144.             socket.emit('erreur', 'Erreur dans la requête.');
  145.             return (false);
  146.         }
  147.        
  148.         if (users_table[id].indexOf(socket) == -1){
  149.             socket.emit('erreur', 'Vous avez été dconnecté du serveur.');
  150.             return (false);
  151.         }
  152.        
  153.         return (true);
  154.     }
  155. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement