summary refs log tree commit diff
path: root/src/api
diff options
context:
space:
mode:
authorPuyodead1 <puyodead@proton.me>2023-01-31 09:23:59 -0500
committerPuyodead1 <puyodead@protonmail.com>2023-02-23 22:52:24 -0500
commitada821070bf3fd9c18e57884264c8c6497b9eb9f (patch)
treee1f3e00e0a3a1514e333d404a2f3456732a91939 /src/api
parentfix: email verification (diff)
downloadserver-ada821070bf3fd9c18e57884264c8c6497b9eb9f.tar.xz
add right to resend verification emails
Diffstat (limited to 'src/api')
-rw-r--r--src/api/routes/auth/verify/resend.ts46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/api/routes/auth/verify/resend.ts b/src/api/routes/auth/verify/resend.ts
index a798a3d9..d54ddf73 100644
--- a/src/api/routes/auth/verify/resend.ts
+++ b/src/api/routes/auth/verify/resend.ts
@@ -22,28 +22,32 @@ import { Request, Response, Router } from "express";
 import { HTTPError } from "lambert-server";
 const router = Router();
 
-router.post("/", route({}), async (req: Request, res: Response) => {
-	const user = await User.findOneOrFail({
-		where: { id: req.user_id },
-		select: ["username", "email"],
-	});
+router.post(
+	"/",
+	route({ right: "RESEND_VERIFICATION_EMAIL" }),
+	async (req: Request, res: Response) => {
+		const user = await User.findOneOrFail({
+			where: { id: req.user_id },
+			select: ["username", "email"],
+		});
 
-	if (!user.email) {
-		// TODO: whats the proper error response for this?
-		throw new HTTPError("User does not have an email address", 400);
-	}
+		if (!user.email) {
+			// TODO: whats the proper error response for this?
+			throw new HTTPError("User does not have an email address", 400);
+		}
 
-	await Email.sendVerificationEmail(user, user.email)
-		.then((info) => {
-			console.log("Message sent: %s", info.messageId);
-			return res.sendStatus(204);
-		})
-		.catch((e) => {
-			console.error(
-				`Failed to send verification email to ${user.username}#${user.discriminator}: ${e}`,
-			);
-			throw new HTTPError("Failed to send verification email", 500);
-		});
-});
+		await Email.sendVerificationEmail(user, user.email)
+			.then((info) => {
+				console.log("Message sent: %s", info.messageId);
+				return res.sendStatus(204);
+			})
+			.catch((e) => {
+				console.error(
+					`Failed to send verification email to ${user.username}#${user.discriminator}: ${e}`,
+				);
+				throw new HTTPError("Failed to send verification email", 500);
+			});
+	},
+);
 
 export default router;