arnaucube
arnaucube/openworktimePublic Self-hosted repository
openworktime/intervalComprovations.js
intervalComprovations.jsRaw
 1
 2var mongoose = require('mongoose');
 3var moment = require('moment');
 4var projectModel  = mongoose.model('projectModel');
 5
 6var userModel  = mongoose.model('userModel');
 7
 8
 9exports.lastConnectionUser = function() {
10    var lastIntervalDate = new Date();
11    var intervalObject = setInterval(function () {
12        var actualDate= new Date();
13        //console.log(actualDate);
14        lastIntervalDate.setMinutes(lastIntervalDate.getMinutes() - 4);
15        console.log(lastIntervalDate);
16
17        userModel.find(function(err, users) {
18            if(err) res.send(500, err.message);
19
20
21        	for(var i=0; i<users.length; i++)
22        	{
23                if(users[i].connected==true)
24                {
25                    if(users[i].lastConnection<=lastIntervalDate.setMinutes(lastIntervalDate.getMinutes() - 4))
26                    {
27                        if(users[i].connected==true)
28                        {
29                            console.log("user disconnected: " + users[i].username);
30                            users[i].connected= false;
31                 		   users[i].save(function(err) {
32                 			   if(err) return res.send(500, err.message);
33                               //console.log("user: " + users[i].username + ", connected=false");
34                           });
35                        }
36                    }
37                }
38        	}
39
40    	});
41
42
43        lastIntervalDate= new Date();
44    }, 60000);//every minute
45};