-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuser-database.js
More file actions
105 lines (96 loc) · 2.76 KB
/
user-database.js
File metadata and controls
105 lines (96 loc) · 2.76 KB
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
var mongo = require('mongodb');
var monk = require('monk');
var allgood = require('allgood'),
valid = allgood.valid;
module.exports.init = function(context, callback) {
module.context = context;
console.log('Connecting to mongo at: ' + context.settings.mongoURI);
db = monk(context.settings.mongoURI);
users = db.get('users');
if (!users) {
console.log('Users database does not exist!');
} else {
console.log('Found the user database');
}
callback(null);
}
module.exports.allUsers = function(req, res) {
users.find({}, function (err, docs){
res.json(docs);
});
}
module.exports.findUser = function(req, res) {
if ("facebookId" in req.query) {
users.find({facebookId : req.query.facebookId}, function (err, docs){
res.json(docs);
});
}
else if ("facebookId" in req.body) {
users.find({facebookId : req.body.facebookId}, function (err, docs){
res.json(docs);
});
} else {
users.find({_id : req.body.userId}, function (err, docs){
res.json(docs);
});
}
}
module.exports.findUserByFacebook = function(req, res) {
users.find({facebookId : req.body.facebookId}, function (err, docs){
res.json(docs);
});
}
module.exports.reset = function(req, res) {
users.remove({});
res.send('Reset users!');
}
module.exports.incrementUserMileage = function(req, res) {
console.log("Trying to change a user's mileage by: " + req.body.miles);
update = users.findAndModify({
query: { _id: req.body.userId },
update: {$inc: { milesRidden: parseFloat(req.body.miles) }},
new: true // return the updated document
}, function(err, result) {
if (err) {
console.log("Error: " + result.errmsg);
res.json(result.errmsg);
} else {
console.log("Success!");
res.json(result);
}
});
}
module.exports.deleteUser = function(req, res) {
users.remove({facebookId: req.body.facebookId});
res.json("deleted");
}
module.exports.addUser = function(req, res) {
json = req.body;
if (!valid(userSchema, json)) {
console.log('Invalid user!');
res.json(allgood.problems(userSchema, json));
} else {
newUser = {
"name":json.name,
"facebookId":json.facebookId,
"neighborhoodName":json.neighborhoodName,
"milesRidden":0 // init this, not supplied in json
};
users.insert(newUser, function(err, doc){
console.log('Trying to add a user...');
if(err) {
console.log(err);
res.json(err);
} else {
console.log('Success!');
res.json('Success!');
}
});
}
}
// define the keys we want all users to have
var userSchema = {
"name":"string",
"facebookId" : "string",
"neighborhoodName" : "string"
};