diff --git a/src/router/user.js b/src/router/user.js index 0506f16..d633501 100644 --- a/src/router/user.js +++ b/src/router/user.js @@ -109,6 +109,12 @@ module.exports = (middleware, users, plans, assets) => { }); router.get('/assets', async (req, res) => { + + if (!req.session.user.financialData || !req.session.user) { + req.session.errMessage = "Please complete your financial data before creating a plan."; + return res.status(status.Unauthorized).redirect('/questionnaire'); + } + let userAssets = await assets.find({ userId: new ObjectId(req.session.userId) }).toArray(); let totalUserAssetValue = await calculateTotalAssetValue(userAssets); @@ -124,6 +130,12 @@ module.exports = (middleware, users, plans, assets) => { }); router.get('/plans', async (req, res) => { + + if (!req.session.user.financialData || !req.session.user) { + req.session.errMessage = "Please complete your financial data before creating a plan."; + return res.status(status.Unauthorized).redirect('/questionnaire'); + } + try { const updatedUserPlans = await updateProgress(plans, assets, users, req.session.user._id); @@ -177,21 +189,27 @@ module.exports = (middleware, users, plans, assets) => { } }); - router.get('/newPlan', (req, res) => { + // router.get('/newPlan', (req, res) => { + // if (!req.session.user.financialData || !req.session.user) { + // req.session.errMessage = "Please complete your financial data before creating a plan."; + // return res.status(status.Unauthorized).redirect('/questionnaire'); + // } + // const errMessage = req.session.errMessage; + // req.session.errMessage = ""; + // res.render('newPlan', { + // user: req.session.user, + // errMessage: errMessage, + // geoData: req.session.geoData + // }); + // }); + + router.post('/newPlan', async (req, res) => { + if (!req.session.user.financialData || !req.session.user) { req.session.errMessage = "Please complete your financial data before creating a plan."; return res.status(status.Unauthorized).redirect('/questionnaire'); } - const errMessage = req.session.errMessage; - req.session.errMessage = ""; - res.render('newPlan', { - user: req.session.user, - errMessage: errMessage, - geoData: req.session.geoData - }); - }); - router.post('/newPlan', async (req, res) => { const planSchema = joi.object({ name: joi.string().min(3).max(100).required(), retirementAge: joi.number().min(18).max(120).required(), diff --git a/src/util/calculations.js b/src/util/calculations.js index 81ff6bf..979de45 100644 --- a/src/util/calculations.js +++ b/src/util/calculations.js @@ -55,6 +55,9 @@ async function calculateTotalAssetValue(assets) { asset.year = new Date(asset.year).getFullYear(); let age = today.getFullYear() - asset.year; let value = asset.value * Math.pow(0.85, age); + if (value < 1000) { + value = 1000; + } totalAssetValue += value; } else { totalAssetValue += asset.value;