From 32ac4748eb62ec05b38db596a5063f614e619612 Mon Sep 17 00:00:00 2001 From: Shubham Date: Fri, 6 Nov 2020 19:21:39 +0530 Subject: [PATCH 1/3] getProfileController --- server/.gitignore | 3 +- server/package.json | 1 + server/src/routers/api/userProfileRouter.js | 39 ++++++++++++++ server/src/routers/api/userRouter.js | 56 ++++++++++++--------- server/src/server.js | 1 + 5 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 server/src/routers/api/userProfileRouter.js diff --git a/server/.gitignore b/server/.gitignore index b512c09..1dcef2d 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1 +1,2 @@ -node_modules \ No newline at end of file +node_modules +.env \ No newline at end of file diff --git a/server/package.json b/server/package.json index 36c8684..037ea50 100644 --- a/server/package.json +++ b/server/package.json @@ -9,6 +9,7 @@ "author": "", "license": "ISC", "dependencies": { + "bcrypt": "^5.0.0", "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "^4.17.1", diff --git a/server/src/routers/api/userProfileRouter.js b/server/src/routers/api/userProfileRouter.js new file mode 100644 index 0000000..1cbc918 --- /dev/null +++ b/server/src/routers/api/userProfileRouter.js @@ -0,0 +1,39 @@ +const express = require("express"); +const router = express.Router(); +const UserProfile = require("../../models/Profile"); + +// @route GET api/profile/me +// @desc Get your own user profile +// @access Private + +router.get("/me", async (req, res) => { + try { + const userProfile = await UserProfile.findOne({ + _id: req.params.userProfileId, + }); + if (!userProfile) { + return res.status(400).json({ + status: "fail", + message: "No user found", + }); + } + + res.status(200).json({ + status: "success", + message: "user profile found", + data: userProfile, + }); + } catch (error) { + const err_code = error.err_code + ? err.code >= 100 && err.code <= 599 + ? err.code + : 500 + : 500; + res.status(err_code).json({ + status: "fail", + message: error.message || "Internal Server Error", + }); + } +}); + +module.exports = router; diff --git a/server/src/routers/api/userRouter.js b/server/src/routers/api/userRouter.js index 5e8a8f0..54707b5 100644 --- a/server/src/routers/api/userRouter.js +++ b/server/src/routers/api/userRouter.js @@ -1,38 +1,46 @@ var express = require("express"); var router = express.Router(); const auth = require("../../middleware/auth"); -const User = require("../../models/user") +const User = require("../../models/user"); /* GET users listing. */ router.get("/", function (req, res, next) { res.send("respond with a resource"); + next(); }); - -router.post("/signup" , async (req, res) => { - const user = new User(req.body) - try{ - await user.save(); - const token = await user.generateAuthToken(); - const filtered_user = user.toJSON() - res.status(201).json({msg: "Your account has been created successfully", user:filtered_user, token}) - }catch(e){ - console.log(e); - res.status(400).send({ errors: [{msg: e.message}] }); - } -}) - -router.post("/login" , async(req,res)=>{ - try{ - const user = await User.findByCredentials(req.body.email, req.body.password) - const token = await user.generateAuthToken() - res.send({ msg: "You have been logged in successfully", user, token}) - }catch(e){ - console.log(e) - res.status(400).send({ errors: [{msg: e.message}] }); +router.post("/signup", async (req, res) => { + const user = new User(req.body); + try { + await user.save(); + const token = await user.generateAuthToken(); + const filtered_user = user.toJSON(); + res + .status(201) + .json({ + msg: "Your account has been created successfully", + user: filtered_user, + token, + }); + } catch (e) { + console.log(e); + res.status(400).send({ errors: [{ msg: e.message }] }); } -}) +}); +router.post("/login", async (req, res) => { + try { + const user = await User.findByCredentials( + req.body.email, + req.body.password + ); + const token = await user.generateAuthToken(); + res.send({ msg: "You have been logged in successfully", user, token }); + } catch (e) { + console.log(e); + res.status(400).send({ errors: [{ msg: e.message }] }); + } +}); // @route GET api/users // @desc Get yourself diff --git a/server/src/server.js b/server/src/server.js index 42c136a..d8ac4c4 100644 --- a/server/src/server.js +++ b/server/src/server.js @@ -16,6 +16,7 @@ app.use(express.urlencoded({ extended: true })); // routes app.use("/api/user", require("./routers/api/userRouter")); +app.use("/api/profile", require("./routers/api/userProfileRouter")); app.get("/", (req, res) => { res.send("Api is running"); From c394a49f6e56d2d927de3700a50663d57384648e Mon Sep 17 00:00:00 2001 From: Shubham Date: Thu, 12 Nov 2020 15:34:03 +0530 Subject: [PATCH 2/3] fix responses --- server/src/routers/api/userProfileRouter.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server/src/routers/api/userProfileRouter.js b/server/src/routers/api/userProfileRouter.js index 1cbc918..b438060 100644 --- a/server/src/routers/api/userProfileRouter.js +++ b/server/src/routers/api/userProfileRouter.js @@ -1,12 +1,13 @@ const express = require("express"); const router = express.Router(); const UserProfile = require("../../models/Profile"); +const auth = require('../../middleware/auth'); // @route GET api/profile/me // @desc Get your own user profile // @access Private -router.get("/me", async (req, res) => { +router.get("/me", auth,async (req, res) => { try { const userProfile = await UserProfile.findOne({ _id: req.params.userProfileId, @@ -14,13 +15,13 @@ router.get("/me", async (req, res) => { if (!userProfile) { return res.status(400).json({ status: "fail", - message: "No user found", + msg: "No user found", }); } res.status(200).json({ status: "success", - message: "user profile found", + msg: "user profile found", data: userProfile, }); } catch (error) { @@ -31,7 +32,7 @@ router.get("/me", async (req, res) => { : 500; res.status(err_code).json({ status: "fail", - message: error.message || "Internal Server Error", + msg: error.message || "Internal Server Error", }); } }); From 8f06ac0b768059242311ec20018813415cce74c7 Mon Sep 17 00:00:00 2001 From: Shubham Date: Thu, 12 Nov 2020 15:52:25 +0530 Subject: [PATCH 3/3] signout --- server/src/routers/api/userProfileRouter.js | 40 --------------------- server/src/routers/api/userRouter.js | 23 ++++++++---- 2 files changed, 16 insertions(+), 47 deletions(-) delete mode 100644 server/src/routers/api/userProfileRouter.js diff --git a/server/src/routers/api/userProfileRouter.js b/server/src/routers/api/userProfileRouter.js deleted file mode 100644 index b438060..0000000 --- a/server/src/routers/api/userProfileRouter.js +++ /dev/null @@ -1,40 +0,0 @@ -const express = require("express"); -const router = express.Router(); -const UserProfile = require("../../models/Profile"); -const auth = require('../../middleware/auth'); - -// @route GET api/profile/me -// @desc Get your own user profile -// @access Private - -router.get("/me", auth,async (req, res) => { - try { - const userProfile = await UserProfile.findOne({ - _id: req.params.userProfileId, - }); - if (!userProfile) { - return res.status(400).json({ - status: "fail", - msg: "No user found", - }); - } - - res.status(200).json({ - status: "success", - msg: "user profile found", - data: userProfile, - }); - } catch (error) { - const err_code = error.err_code - ? err.code >= 100 && err.code <= 599 - ? err.code - : 500 - : 500; - res.status(err_code).json({ - status: "fail", - msg: error.message || "Internal Server Error", - }); - } -}); - -module.exports = router; diff --git a/server/src/routers/api/userRouter.js b/server/src/routers/api/userRouter.js index 12979dd..f62df82 100644 --- a/server/src/routers/api/userRouter.js +++ b/server/src/routers/api/userRouter.js @@ -16,13 +16,11 @@ router.post("/signup", async (req, res) => { await user.save(); const token = await user.generateAuthToken(); const filtered_user = user.toJSON(); - res - .status(201) - .json({ - msg: "Your account has been created successfully", - user: filtered_user, - token, - }); + res.status(201).json({ + msg: "Your account has been created successfully", + user: filtered_user, + token, + }); } catch (e) { console.log(e); res.status(400).send({ errors: [{ msg: e.message }] }); @@ -50,4 +48,15 @@ router.get("/", auth, (req, res) => { res.send(req.user); }); +// @route POST api/users/logout +// @desc Logout a user +// @access Private + +router.post("/logout", auth, async (req, res) => { + res.clearCookie("token"); + res.status(200).json({ + msg: "User Signout Successfully", + }); +}); + module.exports = router;