-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathrepo.js
115 lines (106 loc) · 2.75 KB
/
repo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
var logUser = function(db, user, callback) {
findUserById(db, user.id, function(foundUser) {
if(!foundUser){
insertUser(db, user, function(newUser){
user.logType = "inserted";
return callback(user);
});
}
else {
var username = user.username;
db.collection("users").updateOne(
{ "id" : user.id },
{
$set: { "dubs": user.dubs },
$currentDate: { "LastConnected": true }
}, function(err, results) {
user.logType = "updated";
return callback(user);
});
}
});
};
var findUserById = function(db, userid, callback) {
db.collection("users").findOne( { "id": userid }, function(err, doc) {
if (doc != null) {
callback(doc);
} else {
callback();
}
});
};
var updateUser = function(db, userid, user, callback) {
};
var insertUser = function(db, user, callback) {
user.props = 0;
user.hearts = 0;
user.DateAdded = new Date();
user.LastConnected = new Date();
db.collection("users").insertOne(user, function(err, result) {
callback(result.ops[0]);
});
};
var propsUser = function(db, user, callback) {
db.collection("users").updateOne(
{ "id": user.id },
{ $inc: { props: 1 } },
{ },
function(err,data){
if (err){
console.log("ERR:", err);
callback();
}else{
findUserById(db, user.id, function(foundUser){
console.log("Updated ", user.username, " props ", foundUser.props);
return callback(foundUser);
});
}
}
);
};
var heartsUser = function(db, user, callback) {
db.collection("users").updateOne(
{ "id": user.id },
{ $inc: { hearts: 1 } },
{ },
function(err,data){
if (err){
console.log("ERR:", err);
callback();
}else{
findUserById(db, user.id, function(foundUser){
console.log("Updated ", user.username, " hearts ", foundUser.hearts);
return callback(foundUser);
});
}
}
);
};
var propsLeaders = function(db, callback) {
var propsCursor = db.collection("users").find().sort( { props: -1 } ).limit(3);
propsCursor.toArray(function(err, docs) {
if (docs != null) {
callback(docs);
} else {
callback();
}
});
};
var heartsLeaders = function(db, callback) {
var heartsCursor = db.collection("users").find().sort( { hearts: -1 } ).limit(3);
heartsCursor.toArray(function(err, docs) {
if (docs != null) {
callback(docs);
} else {
callback();
}
});
};
module.exports.logUser = logUser;
module.exports.findUserById = findUserById;
module.exports.updateUser = updateUser;
module.exports.insertUser = insertUser;
module.exports.propsUser = propsUser;
module.exports.heartsUser = heartsUser;
module.exports.propsLeaders = propsLeaders;
module.exports.heartsLeaders = heartsLeaders;