+ + + + + +
diff --git a/app.js b/app.js index b2669f7..f795c00 100644 --- a/app.js +++ b/app.js @@ -41,19 +41,19 @@ app.use(express.json()); // Method override app.use( - methodOverride(function (req, res) { - if (req.body && typeof req.body === "object" && "_method" in req.body) { - // look in urlencoded POST bodies and delete it - let method = req.body._method; - delete req.body._method; - return method; - } - }) + methodOverride(function(req, res) { + if (req.body && typeof req.body === "object" && "_method" in req.body) { + // look in urlencoded POST bodies and delete it + let method = req.body._method; + delete req.body._method; + return method; + } + }) ); // Logging if (process.env.NODE_ENV === "development") { - app.use(morgan("dev")); + app.use(morgan("dev")); } // EJS @@ -66,12 +66,12 @@ app.use(expressLayouts); // Sessions app.use( - session({ - secret: "keyboard cat", - resave: false, - saveUninitialized: false, - store: new MongoStore({ mongooseConnection: mongoose.connection }), - }) + session({ + secret: "keyboard cat", + resave: false, + saveUninitialized: false, + store: new MongoStore({ mongooseConnection: mongoose.connection }), + }) ); // cookie middleware @@ -85,12 +85,12 @@ app.use(passport.session()); app.use(flash()); // Set Global variables -app.use(function (req, res, next) { - res.locals.user = req.user || null; - res.locals.success_msg = req.flash("success_msg"); - res.locals.error_msg = req.flash("error_msg"); - res.locals.error = req.flash("error"); - next(); +app.use(function(req, res, next) { + res.locals.user = req.user || null; + res.locals.success_msg = req.flash("success_msg"); + res.locals.error_msg = req.flash("error_msg"); + res.locals.error = req.flash("error"); + next(); }); // Static folder @@ -108,12 +108,13 @@ app.use("/done", require("./routes/api/done")); app.use("/addBalance", require("./routes/api/addBalance")); app.use("/transaction", require("./routes/api/transaction")); app.use("/search", require("./routes/api/search")); +app.use("/edit", require("./routes/api/edit")); // Port: Love You 3000 const PORT = process.env.PORT || 3000; // Server Listening app.listen( - PORT, - console.log(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`) -); + PORT, + console.log(`Server running in ${process.env.NODE_ENV} mode on port ${PORT}`) +); \ No newline at end of file diff --git a/routes/api/edit.js b/routes/api/edit.js index 685ea2f..eb4944e 100644 --- a/routes/api/edit.js +++ b/routes/api/edit.js @@ -1 +1,68 @@ // Edit Profile Route +const express = require('express') +const router = express.Router() +const { ensureAuth } = require('../../middleware/auth') + +const User = require('../../models/User.js'); +const { id } = require('date-fns/locale'); +const { last } = require('lodash'); + + + +// @desc Show edit page +// @route GET /edit/:id +router.get("/:id", ensureAuth, (req, res) => { + let avatar = req.user.image; + let curruser = req.user; + let firstName = req.user.firstName; + let lastName = req.user.lastName; + let email = req.user.email; + let googleId = req.user.googleId; + let _id = req.user._id; + + console.log(avatar); + + + res.status(200).render("edit", { + layout: "layouts/app", + avatar, + firstName, + lastName, + email, + googleId, + _id, + href: "/edit", + }); +}); + +router.put("/:id", ensureAuth, async(req, res) => { + try { + + let curruser1 = await User.findById(req.params.id).lean(); + + curruser1.firstName = req.body.firstName; + curruser1.lastName = req.body.lastName; + curruser1.email = req.body.email; + curruser1.displayName = curruser1.firstName + " " + curruser1.lastName + + console.log(curruser1.firstName + "this is the first name"); + console.log(curruser1.lastName + "this is the last name"); + console.log(curruser1.displayName + "this is the disply name"); + console.log(curruser1.email + "this is the email"); + curruser1 = await User.findOneAndUpdate({ _id: req.params.id }, { + firstName: curruser1.firstName, + lastName: curruser1.lastName, + email: curruser1.email, + displayName: curruser1.displayName, + }, { + new: true, // it will create a new one, if it doesn't exist + runValidators: true, // it check weather the fields are valid or not + }); + res.redirect("/portfolio"); + } catch (err) { + console.error(err) + return res.render('error/500') + } +}); + +module.exports = router; \ No newline at end of file diff --git a/views/edit.ejs b/views/edit.ejs index c5b1623..2b0d5c2 100644 --- a/views/edit.ejs +++ b/views/edit.ejs @@ -1 +1,97 @@ -