Plan detail page finished with mock data

This commit is contained in:
nicoagostini committed 2025-05-06 18:36:25 -07:00
1 parent d67718733d
commit 173c0b63c4
10 files changed
+128 -16

No files matched your search

+42
View File
@@ -1,6 +1,7 @@
const status = require("../util/statuses");
const bcrypt = require('bcrypt');
const joi = require("joi");
const { ObjectId } = require('mongodb');
const salt = 12;
module.exports = (middleware, users, plans) => {
@@ -40,7 +41,48 @@ module.exports = (middleware, users, plans) => {
}
});
router.get('/plans/:id', async (req, res) => {
if (!req.session.email) {
return res.status(status.Unauthorized).redirect('/login');
}
try {
const planId = req.params.id;
if (!ObjectId.isValid(planId)) {
req.session.errMessage = "Invalid plan ID format.";
return res.status(status.BadRequest).redirect('/plans');
}
const plan = await plans.findOne({ userEmail: req.user.email, _id: new ObjectId(planId) });
if (!plan) {
console.log(`Plan not found with ID: ${planId} for user: ${req.user.email}`);
req.session.errMessage = "Plan not found or you do not have permission to view it.";
return res.status(status.NotFound).redirect('/plans');
}
// console.log("Found plan:", plan);
res.render('planDetail', {
user: req.user,
plan: plan
});
} catch (err) {
console.error("Error fetching plan:", err);
req.session.errMessage = "Could not load your plan. Please try again.";
res.status(status.InternalServerError).redirect('/home');
}
});
router.get('/newPlan', (req, res) => {
if (!req.session.email) {
return res.status(status.Unauthorized).redirect('/login');
}
if(!req.user.financialData){
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.user, errMessage: errMessage });