From eef857951bee7fba7c92d0446b9f13541eab0644 Mon Sep 17 00:00:00 2001 From: TJordan77 Date: Tue, 15 Jul 2025 09:52:54 -0400 Subject: [PATCH 1/2] added a route for update handling of user profiles in index.js --- auth/index.js | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/auth/index.js b/auth/index.js index 07968c5..ea7a034 100644 --- a/auth/index.js +++ b/auth/index.js @@ -169,8 +169,8 @@ router.post("/login", async (req, res) => { // Find user const user = await User.findOne({ where: { username } }); - user.checkPassword(password); - if (!user) { + // Adjusted to make sure that we don't get null users + if (!user || !user.checkPassword(password)) { return res.status(401).send({ error: "Invalid credentials" }); } @@ -215,19 +215,35 @@ router.post("/logout", (req, res) => { }); // Get current user route (protected) -router.get("/me", (req, res) => { - const token = req.cookies.token; +router.put("/me", authenticateJWT, async (req, res) => { + try { + const { firstName, lastName, email, profilePicture } = req.body; + const user = await User.findByPk(req.user.id); - if (!token) { - return res.send({}); - } + if (!user) return res.status(404).send({ error: "User not found" }); - jwt.verify(token, JWT_SECRET, (err, user) => { - if (err) { - return res.status(403).send({ error: "Invalid or expired token" }); - } - res.send({ user: user }); - }); + if (firstName !== undefined) user.firstName = firstName; + if (lastName !== undefined) user.lastName = lastName; + if (email !== undefined) user.email = email; + if (profilePicture !== undefined) user.profilePicture = profilePicture; + + await user.save(); + + res.send({ + message: "Profile updated successfully", + user: { + id: user.id, + username: user.username, + email: user.email, + firstName: user.firstName, + lastName: user.lastName, + profilePicture: user.profilePicture, + }, + }); + } catch (err) { + console.error("Update profile error:", err); + res.status(500).send({ error: "Failed to update profile" }); + } }); module.exports = { router, authenticateJWT }; From 29e50ef328b1ae9728e79df6113a4604f5d2c9fe Mon Sep 17 00:00:00 2001 From: TJordan77 Date: Tue, 15 Jul 2025 10:20:57 -0400 Subject: [PATCH 2/2] Update user.js with profile definitions (first/last name, profile pictures) --- database/user.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/database/user.js b/database/user.js index 755c757..ef7697a 100644 --- a/database/user.js +++ b/database/user.js @@ -28,6 +28,19 @@ const User = db.define("user", { type: DataTypes.STRING, allowNull: true, }, + firstName: { + type: DataTypes.STRING, + allowNull: true, + }, + lastName: { + type: DataTypes.STRING, + allowNull: true, + }, + profilePicture: { + type: DataTypes.STRING, + allowNull: true, + defaultValue: "https://i.imgur.com/default-avatar.png", + }, }); // Instance method to check password