Skip to content

Commit b22f367

Browse files
author
andela-nmartin
committed
Code issues
1 parent 728722e commit b22f367

File tree

10 files changed

+197
-197
lines changed

10 files changed

+197
-197
lines changed

server.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ var app = express();
1010
var http = require('http').Server(app);
1111
var io = require('socket.io')(http);
1212

13-
// connect to Mongo when the app initializes
13+
// connect to Mongo when the app initializes and
14+
// drop the db before seeding
1415
mongoose.connect(config.database, function(err) {
1516
if (err) {
1617
console.log(err);
@@ -38,12 +39,11 @@ app.use(morgan('dev'));
3839

3940
app.use(express.static(__dirname + '/public'));
4041

41-
var api = require('./server/routes/api')(app, express, io);
42+
var api = require('./server/routes/index')(app, express, io);
4243
app.use('/api', api);
4344

4445
app.get('*', function(req, res) {
4546
res.send('System Under Construction...');
46-
// res.sendFile(__dirname + '/public/views/index.html');
4747
});
4848

4949
http.listen(config.port, function(err) {

server/controllers/documents.js

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
(function() {
22
'use strict';
33
// get the required models and db connection
4-
var User = require('../models/users'),
5-
moment = require('moment'),
6-
Document = require('../models/documents');
4+
var moment = require('moment'),
5+
Document = require('../models/documents'),
6+
User = require('../models/users');
77

88
module.exports = {
99
// get document by id
1010
getDocument: function(req, res) {
11-
var id = req.param('id');
11+
var id = req.params.id;
1212
Document.find({
1313
_id: id
1414
}, function(err, documents) {
@@ -19,6 +19,7 @@
1919
res.send(documents);
2020
});
2121
},
22+
2223
// to get the mongo cluster of all the documents stored
2324
getAllDocuments: function(req, res) {
2425
Document.find({}, function(err, documents) {
@@ -29,6 +30,7 @@
2930
res.json(documents);
3031
});
3132
},
33+
3234
createDocument: function(req, res) {
3335
var document = new Document({
3436
ownerId: req.decoded._id,
@@ -40,33 +42,31 @@
4042
res.send(err);
4143
return;
4244
}
43-
res.json({
44-
success: true,
45-
message: 'Document has been created!'
46-
});
45+
res.send(document);
4746
});
4847
},
48+
4949
// update document by id
5050
updateDocument: function(req, res) {
51-
var id = req.param('id');
51+
var id = req.params.id;
5252
Document.findById(req.params.id).exec(function(err, document) {
5353
if (err) {
5454
res.status(500).send({
5555
message: 'There was a problem deleting your document.'
5656
});
5757
} else {
58-
if (document === null) {
58+
if (!document) {
5959
res.send({
6060
message: 'No document found.'
6161
});
6262
} else {
6363
if (req.decoded._id !== document.ownerId && req.decoded.role === 'User') {
64-
//send 403 status and forbidden message
64+
// send 403 status and forbidden message
6565
res.status(403).send({
6666
message: 'Forbidden to update this document.'
6767
});
6868
} else {
69-
//delete or update
69+
// delete or update
7070
Document.findOneAndUpdate({
7171
_id: id
7272
}, {
@@ -93,34 +93,34 @@
9393
}
9494
});
9595
},
96+
9697
// delete document by id
9798
deleteDocument: function(req, res) {
98-
var id = req.param('id');
9999
Document.findById(req.params.id).exec(function(err, document) {
100100
if (err) {
101101
res.status(500).send({
102102
message: 'There was a problem deleting your document.'
103103
});
104104
} else {
105-
if (document === null) {
105+
if (!document) {
106106
res.send({
107107
message: 'No document found.'
108108
});
109109
} else {
110110
if (req.decoded._id !== document.ownerId && req.decoded.role === 'User') {
111-
//send 403 status and forbidden message
111+
// send 403 status and forbidden message
112112
res.status(403).send({
113113
message: 'Forbidden to delete this document.'
114114
});
115115
} else {
116-
//delete or update
116+
// delete or update
117117
Document.findOneAndRemove({
118118
_id: req.params.id
119119
}).exec(function(err, documents) {
120120
if (err) {
121121
return err;
122122
} else {
123-
res.json(200, {
123+
res.status(200).json({
124124
message: documents
125125
});
126126
}
@@ -130,6 +130,7 @@
130130
}
131131
});
132132
},
133+
133134
// to get the mongo cluster of all the documents filtered by 'User' role
134135
getAllDocumentsByRoleUser: function(req, res) {
135136
Document.find({})
@@ -150,15 +151,14 @@
150151
}
151152
});
152153
for (var i = 0; i < filtered.length; i++) {
153-
if (filtered[i] === undefined) {
154+
if (!filtered[i]) {
154155
filtered.splice(i, 1);
155156
}
156157
}
157158
res.json(filtered);
158159
});
159160
},
160161

161-
162162
// to get the mongo cluster of all the documents filtered by 'Administrator' role
163163
getAllDocumentsByRoleAdministrator: function(req, res) {
164164
Document.find({})
@@ -179,14 +179,14 @@
179179
}
180180
});
181181
for (var i = 0; i < filtered.length; i++) {
182-
if (filtered[i] === undefined) {
182+
if (!filtered[i]) {
183183
filtered.splice(i, 1);
184184
}
185185
}
186-
console.log(filtered);
187186
res.json(filtered);
188187
});
189188
},
189+
190190
// to get the mongo cluster of all the documents filtered by date
191191
getAllDocumentsByDate: function(req, res) {
192192
Document.find({
@@ -203,6 +203,19 @@
203203
}
204204
res.json(documents);
205205
});
206+
},
207+
208+
getAllDocumentsParticularUser: function(req, res) {
209+
var id = req.param('id');
210+
User.find({
211+
ownerId: id
212+
}, function(err, documents) {
213+
if (err) {
214+
res.send(err);
215+
return;
216+
}
217+
res.json(documents);
218+
});
206219
}
207220
};
208221
})();

server/controllers/roles.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
res.json(roles);
1515
});
1616
},
17+
1718
// creates a role in the db
1819
createRole: function(req, res) {
1920
var role = new Role({

server/controllers/users.js

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@
3535
if (err) {
3636
res.send(err);
3737
}
38-
//
3938
// add the role to the user before being saved
40-
//
41-
console.log(JSON.stringify(roles));
4239
user.role = roles[0].title;
4340
// assign a token to the created user
4441
var token = createToken(user);
@@ -48,7 +45,6 @@
4845
res.send(err);
4946
return;
5047
}
51-
console.log(user);
5248
res.json({
5349
success: true,
5450
message: 'User has been created!',
@@ -62,7 +58,7 @@
6258
login: function(req, res) {
6359
User.findOne({
6460
username: req.body.username
65-
}).select('name username password').exec(function(err, user) {
61+
}).exec(function(err, user) {
6662
if (err) {
6763
throw err;
6864
}
@@ -77,9 +73,9 @@
7773
message: 'Invalid Password'
7874
});
7975
} else {
80-
///// token
76+
// token
77+
delete user.password;
8178
var token = createToken(user);
82-
8379
res.json({
8480
id: user._id,
8581
success: true,
@@ -90,13 +86,15 @@
9086
}
9187
});
9288
},
89+
9390
// logout function
9491
logout: function(req, res) {
9592
delete req.headers['x-access-token'];
9693
return res.status(200).json({
9794
'message': 'User has been successfully logged out'
9895
});
9996
},
97+
10098
// to get the mongo cluster of all the users stored on the db
10199
getAllUsers: function(req, res) {
102100
User.find({}, function(err, users) {
@@ -107,9 +105,10 @@
107105
res.json(users);
108106
});
109107
},
108+
110109
// get user by id
111110
getUser: function(req, res) {
112-
var id = req.param('id');
111+
var id = req.params.id;
113112
User.find({
114113
_id: id
115114
}, function(err, users) {
@@ -120,6 +119,7 @@
120119
res.json(users);
121120
});
122121
},
122+
123123
// to get the mongo cluster of all the user roles
124124
getAllUsersRoles: function(req, res) {
125125
User.find({
@@ -132,6 +132,7 @@
132132
res.json(users);
133133
});
134134
},
135+
135136
// to get the mongo cluster of all the user roles
136137
getAllAdminRoles: function(req, res) {
137138
User.find({
@@ -144,9 +145,10 @@
144145
res.json(users);
145146
});
146147
},
148+
147149
// update user by id
148150
updateUser: function(req, res) {
149-
var id = req.param('id');
151+
var id = req.params.id;
150152
// update function
151153
var updateMe = function(id) {
152154
User.findOneAndUpdate({
@@ -173,7 +175,7 @@
173175
if (err) {
174176
res.send(err);
175177
return;
176-
} else if (users === null) {
178+
} else if (!users) {
177179
res.send({
178180
message: 'Not Authorised to update this user.'
179181
});
@@ -196,35 +198,37 @@
196198
updateMe(id7.trim());
197199
}
198200
},
201+
199202
// delete user by id
200203
deleteUser: function(req, res) {
201204
// delete function
202205
var deleteMe = function(id) {
203206
User.findOneAndRemove({
204207
_id: id
205208
},
206-
function(err, users) {
209+
function(err, user) {
207210
if (err) {
208211
res.json(401, {
209212
message: err
210213
});
211214
return;
212215
} else {
213216
res.json(200, {
214-
message: users
217+
message: user
215218
});
216219
}
217220
});
218221
};
219-
if (req.decoded.role === 'Administrator' && req.param('id')) {
220-
var id = req.param('id');
222+
if (req.decoded.role === 'Administrator') {
223+
var id = req.params.id;
221224
deleteMe(id.trim());
222-
} else if (req.param('id')) {
225+
} else if (req.decoded._id === req.params.id) {
223226
var id1 = req.decoded._id;
224227
deleteMe(id1.trim());
225-
} else if (req.decoded.role === 'Administrator' && !req.param('id')) {
226-
var id2 = req.decoded._id;
227-
deleteMe(id2.trim());
228+
} else {
229+
res.json(403, {
230+
message: 'Not allowed to delete this user.'
231+
});
228232
}
229233
}
230234
};

server/models/documents.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// require needed modules
22
var mongoose = require('mongoose'),
3-
User = require('./users'),
43
Schema = mongoose.Schema;
54

65
// create a schema

server/models/roles.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ var RolesSchema = new Schema({
1010
},
1111
title: {
1212
type: String,
13-
enum: ['Administrator', 'User', 'Standard'],
14-
default: 'Standard',
13+
enum: ['Administrator', 'User'],
14+
default: 'User',
1515
unique: true
1616
}
1717

server/models/users.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ var UserSchema = new Schema({
1919
email: String,
2020
password: {
2121
type: String,
22-
required: true,
23-
select: false
22+
required: true
2423
},
2524
role: {
2625
type: String,

0 commit comments

Comments
 (0)