From d3dd309ff4071d2146ac3c4735f9ef693ccae3bc Mon Sep 17 00:00:00 2001
From: garimasingh22 <44470092+garimasingh22@users.noreply.github.com>
Date: Thu, 27 Aug 2020 13:27:19 +0530
Subject: [PATCH 1/2] edit page fornt end and backend
---
app.js | 49 +++++++++++----------
routes/api/edit.js | 67 ++++++++++++++++++++++++++++
views/edit.ejs | 98 ++++++++++++++++++++++++++++++++++++++++-
views/partials/_nav.ejs | 89 +++++++++++++++++++------------------
4 files changed, 235 insertions(+), 68 deletions(-)
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 @@
-
Edit Profile
+
+
+
+
+
+
+ Edit Profile
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/views/partials/_nav.ejs b/views/partials/_nav.ejs
index 34738a9..912c2f7 100644
--- a/views/partials/_nav.ejs
+++ b/views/partials/_nav.ejs
@@ -1,18 +1,15 @@
-