Files
documenso/a.md
2023-09-18 11:15:29 +00:00

66 lines
1.7 KiB
Markdown

// import { NextApiRequest, NextApiResponse } from 'next';
// import crypto from 'crypto';
// import { sendResetPassword } from '@documenso/lib/mail';
// import { defaultHandler, defaultResponder } from '@documenso/lib/server';
// import prisma from '@documenso/prisma';
// async function postHandler(req: NextApiRequest, res: NextApiResponse) {
// const { email } = req.body;
// const cleanEmail = email.toLowerCase();
// if (!cleanEmail || !/.+@.+/.test(cleanEmail)) {
// res.status(400).json({ message: 'Invalid email' });
// return;
// }
// const user = await prisma.user.findFirst({
// where: {
// email: cleanEmail,
// },
// });
// if (!user) {
// return res.status(200).json({ message: 'A password reset email has been sent.' });
// }
// const existingToken = await prisma.passwordResetToken.findFirst({
// where: {
// userId: user.id,
// createdAt: {
// gte: new Date(Date.now() - 1000 _ 60 _ 60),
// },
// },
// });
// if (existingToken) {
// return res.status(200).json({ message: 'A password reset email has been sent.' });
// }
// const token = crypto.randomBytes(64).toString('hex');
// const expiry = new Date();
// expiry.setHours(expiry.getHours() + 24); // Set expiry to one hour from now
// let passwordResetToken;
// try {
// passwordResetToken = await prisma.passwordResetToken.create({
// data: {
// token,
// expiry,
// userId: user.id,
// },
// });
// } catch (error) {
// return res.status(500).json({ message: 'Something went wrong' });
// }
// await sendResetPassword(user, passwordResetToken.token);
// return res.status(200).json({ message: 'A password reset email has been sent.' });
// }
// export default defaultHandler({
// POST: Promise.resolve({ default: defaultResponder(postHandler) }),
// });