Completed group routes

This commit is contained in:
Ceferino Patino 2022-03-06 13:45:48 -06:00
commit 60b5068f90
10 changed files with 77 additions and 20 deletions

15
TODO
View file

@ -1,8 +1,3 @@
Middleware:
☐ Check group owner
☐ Check if known user
User:
✔ Create user @done(22-03-06 13:02)
✔ Update user @done(22-03-06 13:04)
@ -15,17 +10,17 @@ User:
Organization:
✔ Create organization @started(22-03-05 16:24) @done(22-03-05 16:51) @lasted(27m13s)
✔ Delete organization @started(22-03-05 17:04) @done(22-03-05 17:16) @lasted(12m)
✔ Get organization @done(22-03-05 22:52)
✔ Edit organization details @done(22-03-05 19:21)
✔ Get organization @done(22-03-05 22:52)
✔ Add people to organization @started(22-03-06 12:18) @done(22-03-06 12:34) @lasted(16m6s)
✔ Remove people from organization @started(22-03-06 12:36) @done(22-03-06 12:37) @lasted(1m38s)
Groups:
✔ Create group @started(22-03-05 16:09) @done(22-03-05 16:24) @lasted(15m4s)
✔ Delete group @started(22-03-05 18:36) @done(22-03-05 18:53) @lasted(17m40s)
☐ Get group
☐ Edit group details
☐ Add people to group
☐ Remove people from group
✔ Edit group details @done(22-03-06 13:39)
✔ Get group @done(22-03-06 13:39)
✔ Add people to group @done(22-03-06 13:45)
✔ Remove people from group @done(22-03-06 13:45)

View file

@ -1,4 +1,4 @@
const { User, Organization } = require('../../models/index');
const { User, Organization } = require('../models/index');
async function GetOrg(req, res, next) {
const user = req.user;

View file

@ -1,4 +1,4 @@
const { User, Organization } = require('../../models/index');
const { User, Organization } = require('../models/index');
async function checkKnownUser(req, res, next) {
const user = req.user;

View file

@ -0,0 +1,16 @@
async function AddOrgMember(req, res, next) {
const user = req.user;
const groupID = req.params.groupID;
const result = await user.getOwnedGroups({ where: { groupID: groupID } });
if (result.length == 0) {
return res.status(500).send('No group exists with that id.');
}
await result[0].addGroupMember(user);
return res.send('User added to group.');
}
module.exports = AddOrgMember;

View file

@ -0,0 +1,14 @@
async function GetGroup(req, res, next) {
const user = req.user;
const groupID = req.params.groupID;
const result = await user.getOwnedGroups({ where: { groupID: groupID } });
if (result.length == 0) {
return res.status(500).send('No group exists with that id.');
}
return res.send(result[0]);
}
module.exports = GetGroup;

View file

@ -0,0 +1,16 @@
async function RemoveOrgMember(req, res, next) {
const user = req.user;
const groupID = req.params.groupID;
const result = await user.getOwnedGroups({ where: { groupID: groupID } });
if (result.length == 0) {
return res.status(500).send('No group exists with that id.');
}
await result[0].removeGroupMember(user);
return res.send('User added to group.');
}
module.exports = RemoveOrgMember;

View file

@ -0,0 +1,16 @@
async function UpdateOrgDetails(req, res, next) {
const user = req.user;
const groupID = req.params.groupID;
const groupName = req.body.groupName;
if (!groupName) {
return res.status(400).send('Form missing required information.');
}
const result = await user.getOwnedGroups({ where: { groupID: groupID } });
result.update({ groupName: groupName });
return res.send(result);
}
module.exports = UpdateOrgDetails;

View file

@ -6,16 +6,16 @@ const checkKnownUser = require('../middleware/checkKnownUser');
const CreateGroup = require('./group/CreateGroup');
const DeleteGroup = require('./group/DeleteGroup');
// const UpdateGroupDetails = require('./group/UpdateGroupDetails');
// const GetGroup = require('./group/GetGroup');
// const AddGroupMember = require('./group/AddGroupMembers');
// const RemoveGroupMember = require('./group/RemoveGroupMember');
const UpdateGroupDetails = require('./group/UpdateGroupDetails');
const GetGroup = require('./group/GetGroup');
const AddGroupMember = require('./group/AddGroupMember');
const RemoveGroupMember = require('./group/RemoveGroupMember');
router.post('/create', tokenAuth, CreateGroup);
router.delete('/:groupID/delete', tokenAuth, DeleteGroup);
// router.patch('/:groupID/update', tokenAuth, UpdateGroupDetails);
// router.get('/:groupID', tokenAuth, GetGroup);
// router.post('/:groupID/add', tokenAuth, checkKnownUser, AddGroupMember);
// router.post('/:orgID/remove', tokenAuth, RemoveGroupMember);
router.patch('/:groupID/update', tokenAuth, UpdateGroupDetails);
router.get('/:groupID', tokenAuth, GetGroup);
router.post('/:groupID/add', tokenAuth, checkKnownUser, AddGroupMember);
router.post('/:orgID/remove', tokenAuth, RemoveGroupMember);
module.exports = router;