Skip to content

Commit 20973bb

Browse files
authored
Merge pull request #16 from jhotmann/small-improvements
Fix a couple 0.2.0 bugs
2 parents 3d7bd46 + a8174ef commit 20973bb

File tree

2 files changed

+31
-12
lines changed

2 files changed

+31
-12
lines changed

routes/group.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,9 @@ router.get('/leave/:groupId', db.mwUser, async (req, res) => {
5252
res.redirect('/user');
5353
});
5454

55+
router.get('/delete/:groupId', db.mwUser, db.mwGroup, isGroupAdmin, async (req, res) => {
56+
await db.deleteGroup(req.params.groupId);
57+
res.redirect('/user');
58+
});
59+
5560
module.exports = router;

src/database.js

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -244,20 +244,25 @@ module.exports.getUserGroups = async (userId) => {
244244

245245
// User Groups Middleware - depends upon mwUser
246246
module.exports.mwUserGroups = async (req, res, next) => {
247-
const userId = req.pageData.userData._id;
248-
if (req.pageData.userData) {
249-
const userGroups = await this.getUserGroups(userId);
250-
req.pageData.userGroups = await async.mapSeries(userGroups, async (group) => {
251-
group.memberNames = await async.mapSeries(group.members, async (member) => {
252-
const userData = await this.getUser(member.userId);
253-
return userData.username;
247+
if (!req.pageData.userData) {
248+
req.pageData.userGroups = [];
249+
next();
250+
} else {
251+
const userId = req.pageData.userData._id;
252+
if (req.pageData.userData) {
253+
const userGroups = await this.getUserGroups(userId);
254+
req.pageData.userGroups = await async.mapSeries(userGroups, async (group) => {
255+
group.memberNames = await async.mapSeries(group.members, async (member) => {
256+
const userData = await this.getUser(member.userId);
257+
return userData.username;
258+
});
259+
group.isAdmin = group.adminId === userId;
260+
group.accepted = group.members.find((member) => member.userId === userId).accepted;
261+
return group;
254262
});
255-
group.isAdmin = group.adminId === userId;
256-
group.accepted = group.members.find((member) => member.userId === userId).accepted;
257-
return group;
258-
});
263+
}
264+
next();
259265
}
260-
next();
261266
};
262267

263268
module.exports.inviteToGroup = async (_id, userId) => {
@@ -285,6 +290,15 @@ module.exports.leaveGroup = async (_id, userId) => {
285290
}
286291
};
287292

293+
module.exports.deleteGroup = async (_id) => {
294+
try {
295+
return await db.groups.remove({ _id });
296+
} catch (err) {
297+
console.log(err);
298+
return null;
299+
}
300+
};
301+
288302
// !!!! Registration !!!!
289303

290304
module.exports.createRegistration = async () => {

0 commit comments

Comments
 (0)