From b7f48bb79c29442a91e907eb034acfdd4c5ee175 Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Sat, 5 Mar 2022 18:58:20 -0600 Subject: [PATCH] Created initial route files --- server/app.js | 4 ++-- server/bin/www | 2 +- server/db.js | 1 + server/middleware/basicAuth.js | 4 +++- server/middleware/tokenAuth.js | 4 +++- server/models/index.js | 10 +++++----- server/routes/{user => auth}/GetUserDetails.js | 3 +-- server/routes/{user => auth}/UpdateUser.js | 0 server/routes/authRouter.js | 5 +++++ server/routes/group/AddGroupMembers.js | 0 server/routes/{user => group}/CreateGroup.js | 0 server/routes/group/DeleteGroup.js | 16 ++++++++++++++++ server/routes/group/GetGroupDetails.js | 0 server/routes/group/GetGroupMembers.js | 0 server/routes/group/RemoveGroupMembers.js | 0 server/routes/group/UpdateGroupDetails.js | 0 server/routes/groupRouter.js | 12 ++++++++++++ server/routes/org/AddOrgMember.js | 0 server/routes/{user => org}/CreateOrg.js | 0 server/routes/org/DeleteOrg.js | 10 ++++++++++ server/routes/org/GetOrgDetails.js | 0 server/routes/org/GetOrgMembers.js | 0 server/routes/org/RemoveOrgMember.js | 0 server/routes/org/UpdateOrgDetails.js | 0 server/routes/orgRouter.js | 6 +++++- server/routes/userRouter.js | 16 ---------------- 26 files changed, 64 insertions(+), 29 deletions(-) rename server/routes/{user => auth}/GetUserDetails.js (54%) rename server/routes/{user => auth}/UpdateUser.js (100%) create mode 100644 server/routes/group/AddGroupMembers.js rename server/routes/{user => group}/CreateGroup.js (100%) create mode 100644 server/routes/group/DeleteGroup.js create mode 100644 server/routes/group/GetGroupDetails.js create mode 100644 server/routes/group/GetGroupMembers.js create mode 100644 server/routes/group/RemoveGroupMembers.js create mode 100644 server/routes/group/UpdateGroupDetails.js create mode 100644 server/routes/groupRouter.js create mode 100644 server/routes/org/AddOrgMember.js rename server/routes/{user => org}/CreateOrg.js (100%) create mode 100644 server/routes/org/DeleteOrg.js create mode 100644 server/routes/org/GetOrgDetails.js create mode 100644 server/routes/org/GetOrgMembers.js create mode 100644 server/routes/org/RemoveOrgMember.js create mode 100644 server/routes/org/UpdateOrgDetails.js delete mode 100644 server/routes/userRouter.js diff --git a/server/app.js b/server/app.js index 7e50a9a..3ce1494 100644 --- a/server/app.js +++ b/server/app.js @@ -5,7 +5,7 @@ var cookieParser = require('cookie-parser'); var logger = require('morgan'); var authRouter = require('./routes/authRouter'); -var userRouter = require('./routes/userRouter'); +var groupRouter = require('./routes/groupRouter'); var orgRouter = require('./routes/orgRouter'); var app = express(); @@ -21,7 +21,7 @@ app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/api/auth', authRouter); -app.use('/api/user', userRouter); +app.use('/api/group', groupRouter); app.use('/api/org', orgRouter); // catch 404 and forward to error handler diff --git a/server/bin/www b/server/bin/www index 7c46d77..b714b0d 100644 --- a/server/bin/www +++ b/server/bin/www @@ -85,7 +85,7 @@ function onError(error) { async function onListening() { initModels(db); try { - await db.authenticate({ logging: false }); + await db.authenticate(); console.log( `[INFO]: Database connection to ${process.env.NODE_ENV} has been established successfully.` ); diff --git a/server/db.js b/server/db.js index ff2a8fe..77ac899 100644 --- a/server/db.js +++ b/server/db.js @@ -6,6 +6,7 @@ const config = configs[env]; const db = new Sequelize({ ...config, + logging: false, define: { underscored: true, }, diff --git a/server/middleware/basicAuth.js b/server/middleware/basicAuth.js index 9292b94..71c8bd8 100644 --- a/server/middleware/basicAuth.js +++ b/server/middleware/basicAuth.js @@ -9,7 +9,9 @@ async function basicAuth(req, res, next) { return res.status(400).send('Request lacking information'); } - const result = await User.findOne({ where: { email: email } }); + const result = await User.findOne({ + where: { email: email }, + }); if (!result) { return res.status(400).send('Unauthorized user'); diff --git a/server/middleware/tokenAuth.js b/server/middleware/tokenAuth.js index 54f3ab4..0882593 100644 --- a/server/middleware/tokenAuth.js +++ b/server/middleware/tokenAuth.js @@ -7,7 +7,9 @@ async function tokenAuth(req, res, next) { return res.status(403).send('Unauthorized user'); } - const result = await Token.findOne({ where: { tokenID: token } }); + const result = await Token.findOne({ + where: { tokenID: token }, + }); const date = new Date(); if ( diff --git a/server/models/index.js b/server/models/index.js index 976db97..589159e 100644 --- a/server/models/index.js +++ b/server/models/index.js @@ -61,12 +61,12 @@ async function initModels(sequelize) { ResetRequest.belongsTo(User, { foreignKey: 'userID' }); if (process.env.NODE_ENV == 'development') { - await Organization.drop({ logging: false }); - await Group.drop({ logging: false }); - await ResetRequest.drop({ logging: false }); - await sequelize.sync({ logging: false, alter: true }); + await Organization.drop(); + await Group.drop(); + await ResetRequest.drop(); + await sequelize.sync({ alter: true }); } else { - await sequelize.sync({ logging: false, alter: true }); + await sequelize.sync({ alter: true }); } return { User, Group, Organization, Token, ResetRequest }; diff --git a/server/routes/user/GetUserDetails.js b/server/routes/auth/GetUserDetails.js similarity index 54% rename from server/routes/user/GetUserDetails.js rename to server/routes/auth/GetUserDetails.js index e993b64..1602ab0 100644 --- a/server/routes/user/GetUserDetails.js +++ b/server/routes/auth/GetUserDetails.js @@ -1,6 +1,5 @@ async function GetUserDetails(req, res, next) { - const { userID, password, createdAt, updatedAt, ...user } = - req.user.dataValues; + const { userID, password, updatedAt, ...user } = req.user.dataValues; return res.send(user); } diff --git a/server/routes/user/UpdateUser.js b/server/routes/auth/UpdateUser.js similarity index 100% rename from server/routes/user/UpdateUser.js rename to server/routes/auth/UpdateUser.js diff --git a/server/routes/authRouter.js b/server/routes/authRouter.js index ccb077d..1479de3 100644 --- a/server/routes/authRouter.js +++ b/server/routes/authRouter.js @@ -2,14 +2,19 @@ var express = require('express'); var router = express.Router(); const basicAuth = require('../middleware/basicAuth'); +const tokenAuth = require('../middleware/tokenAuth'); +const GetUserDetails = require('./auth/GetUserDetails'); const CreateUser = require('./auth/CreateUser'); const Login = require('./auth/Login'); +const UpdateUser = require('./auth/UpdateUser'); const RequestReset = require('./auth/RequestReset'); const ResetPassword = require('./auth/ResetPassword'); +router.get('/', tokenAuth, GetUserDetails); router.post('/register', CreateUser); router.post('/login', basicAuth, Login); +router.patch('/update', tokenAuth, UpdateUser); router.get('/reset-password', RequestReset); router.patch('/reset-password/:id', ResetPassword); diff --git a/server/routes/group/AddGroupMembers.js b/server/routes/group/AddGroupMembers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/user/CreateGroup.js b/server/routes/group/CreateGroup.js similarity index 100% rename from server/routes/user/CreateGroup.js rename to server/routes/group/CreateGroup.js diff --git a/server/routes/group/DeleteGroup.js b/server/routes/group/DeleteGroup.js new file mode 100644 index 0000000..04a10b5 --- /dev/null +++ b/server/routes/group/DeleteGroup.js @@ -0,0 +1,16 @@ +async function DeleteGroup(req, res, next) { + const user = req.user; + const groupID = req.params.groupID; + + const result = await user.getOwnedGroup({ where: { groupID: groupID } }); + + if (!result) { + return res.status(400).send('You do not own a group with that ID.'); + } + + await result[0].destroy(); + + return res.send('Group deleted'); +} + +module.exports = DeleteGroup; diff --git a/server/routes/group/GetGroupDetails.js b/server/routes/group/GetGroupDetails.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/group/GetGroupMembers.js b/server/routes/group/GetGroupMembers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/group/RemoveGroupMembers.js b/server/routes/group/RemoveGroupMembers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/group/UpdateGroupDetails.js b/server/routes/group/UpdateGroupDetails.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/groupRouter.js b/server/routes/groupRouter.js new file mode 100644 index 0000000..3605c50 --- /dev/null +++ b/server/routes/groupRouter.js @@ -0,0 +1,12 @@ +var express = require('express'); +var router = express.Router(); + +const tokenAuth = require('../middleware/tokenAuth'); + +const CreateGroup = require('./group/CreateGroup'); +const DeleteGroup = require('./group/DeleteGroup'); + +router.post('/create', tokenAuth, CreateGroup); +router.delete('/delete/:groupID', tokenAuth, DeleteGroup); + +module.exports = router; diff --git a/server/routes/org/AddOrgMember.js b/server/routes/org/AddOrgMember.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/user/CreateOrg.js b/server/routes/org/CreateOrg.js similarity index 100% rename from server/routes/user/CreateOrg.js rename to server/routes/org/CreateOrg.js diff --git a/server/routes/org/DeleteOrg.js b/server/routes/org/DeleteOrg.js new file mode 100644 index 0000000..910921f --- /dev/null +++ b/server/routes/org/DeleteOrg.js @@ -0,0 +1,10 @@ +async function DeleteOrg(req, res, next) { + const user = req.user; + + const result = await user.getOwnedOrg(); + await result.destroy(); + + return res.send('Organization deleted'); +} + +module.exports = DeleteOrg; diff --git a/server/routes/org/GetOrgDetails.js b/server/routes/org/GetOrgDetails.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/org/GetOrgMembers.js b/server/routes/org/GetOrgMembers.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/org/RemoveOrgMember.js b/server/routes/org/RemoveOrgMember.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/org/UpdateOrgDetails.js b/server/routes/org/UpdateOrgDetails.js new file mode 100644 index 0000000..e69de29 diff --git a/server/routes/orgRouter.js b/server/routes/orgRouter.js index 81c57c8..d1e97ad 100644 --- a/server/routes/orgRouter.js +++ b/server/routes/orgRouter.js @@ -3,6 +3,10 @@ var router = express.Router(); const tokenAuth = require('../middleware/tokenAuth'); -router.get('/', tokenAuth); +const CreateOrg = require('./org/CreateOrg'); +const DeleteOrg = require('./org/DeleteOrg'); + +router.post('/create', tokenAuth, CreateOrg); +router.delete('/delete', tokenAuth, DeleteOrg); module.exports = router; diff --git a/server/routes/userRouter.js b/server/routes/userRouter.js deleted file mode 100644 index 651ce5c..0000000 --- a/server/routes/userRouter.js +++ /dev/null @@ -1,16 +0,0 @@ -var express = require('express'); -var router = express.Router(); - -const tokenAuth = require('../middleware/tokenAuth'); - -const GetUserDetails = require('./user/GetUserDetails'); -const UpdateUser = require('./user/UpdateUser'); -const CreateGroup = require('./user/CreateGroup'); -const CreateOrg = require('./user/CreateOrg'); - -router.get('/', tokenAuth, GetUserDetails); -router.patch('/update', tokenAuth, UpdateUser); -router.post('/group/create', tokenAuth, CreateGroup); -router.post('/org/create', tokenAuth, CreateOrg); - -module.exports = router;