Skip to content

Commit 35ab6ae

Browse files
committed
Added user rename functionality
1 parent a11745e commit 35ab6ae

File tree

2 files changed

+46
-1
lines changed

2 files changed

+46
-1
lines changed

server.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -545,6 +545,50 @@ app.get("/api/user/name", authenticateJWT, (req, res) => {
545545
return res.json({ username: req.user.username });
546546
});
547547

548+
app.put("/api/user/name", authenticateJWT, (req, res) => {
549+
const { username } = req.body;
550+
551+
if (!username) {
552+
return res.status(400).send("Username is required");
553+
}
554+
555+
prisma.user
556+
.findUnique({
557+
where: {
558+
username: username,
559+
},
560+
})
561+
.then((existingUser) => {
562+
if (existingUser) {
563+
return res.status(400).send("Username already taken");
564+
}
565+
566+
prisma.user
567+
.update({
568+
where: {
569+
username: req.user.username,
570+
},
571+
data: {
572+
username: username,
573+
},
574+
})
575+
.then(() => {
576+
const token = jwt.sign({ username }, JWT_SECRET, {
577+
expiresIn: "7d",
578+
});
579+
return res.json({ username, token });
580+
})
581+
.catch((error) => {
582+
logger.error(error);
583+
return res.status(500).send("Internal server error");
584+
});
585+
})
586+
.catch((error) => {
587+
logger.error(error);
588+
return res.status(500).send("Internal server error");
589+
});
590+
});
591+
548592
app.post("/api/user/password", authenticateJWT, (req, res) => {
549593
const { password, newPassword } = req.body;
550594

src/components/dashboard/settings/UserSettings.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export default function UserSettings() {
4242
setUsernameSuccess("");
4343

4444
fetch("/api/user/name", {
45-
method: "POST",
45+
method: "PUT",
4646
headers: {
4747
"Content-Type": "application/json",
4848
},
@@ -60,6 +60,7 @@ export default function UserSettings() {
6060

6161
localStorage.setItem("username", data.username);
6262
setUsername(data.username);
63+
document.cookie = `auth_session=${data.token}; max-age=604800; path=/; SameSite=Strict`;
6364
setUsernameSuccess("Username updated successfully.");
6465
})
6566
.catch((err) => {

0 commit comments

Comments
 (0)