npm format

This commit is contained in:
2024-11-04 01:05:21 +01:00
parent f475b69022
commit 7ec4303b40
6 changed files with 37 additions and 26 deletions

View File

@ -63,17 +63,15 @@ class UserService {
* @param email
*/
async resetPassword(email: string): Promise<boolean> {
const user = await UserRepository.getByEmail(email)
if ( !user ) return false
if (!user) return false
const token = await bcrypt.hash(new Date().getTime().toString(), 10)
const latestToken = await PasswordResetTokenRepository.getByUserId(user.id)
//Check if password reset has been requested recently
if (latestToken) {
const tokenExpiryDate = new Date(Date.now() - 24 * 60 * 60 * 1000);
const tokenExpiryDate = new Date(Date.now() - 24 * 60 * 60 * 1000)
const isTokenExpired = latestToken.createdAt < tokenExpiryDate
if (!isTokenExpired) return false
@ -88,9 +86,9 @@ class UserService {
await prisma.passwordResetToken.create({
data: {
userId: user.id,
token: token,
token: token
}
});
})
const transporter = NodeMailer.createTransport({
host: config.SMTP_HOST,
@ -98,18 +96,18 @@ class UserService {
secure: false,
auth: {
user: config.SMTP_USER,
pass: config.SMTP_PASSWORD,
},
});
pass: config.SMTP_PASSWORD
}
})
try {
await transporter.sendMail({
from: config.SMTP_USER,
to: email,
subject: "Reset your password",
text: "A password reset has been requested, reset your password here: " + config.CLIENT_URL + "#" + token, // Plain text body
html: "<p>A password reset has been requested, reset your password here: <a href='" + config.CLIENT_URL + "#" + token + "'>" + config.CLIENT_URL + "#" + token + "</a></p>", // Html body
});
subject: 'Reset your password',
text: 'A password reset has been requested, reset your password here: ' + config.CLIENT_URL + '#' + token, // Plain text body
html: "<p>A password reset has been requested, reset your password here: <a href='" + config.CLIENT_URL + '#' + token + "'>" + config.CLIENT_URL + '#' + token + '</a></p>' // Html body
})
return true
} catch (error: any) {

View File

@ -68,10 +68,6 @@ export default class CharacterMove {
const start = path[i]
const end = path[i + 1]
// if (!(await this.movementValidator.isValidMove(character, end))) {
// break
// }
if (CharacterManager.hasResetMovement(character)) {
break
}

View File

@ -76,7 +76,7 @@ async function addHttpRoutes(app: Application) {
}
const userService = new UserService()
const sentEmail = await userService.resetPassword( email )
const sentEmail = await userService.resetPassword(email)
if (sentEmail) {
return res.status(200).json({ message: 'Email has been sent' })
@ -100,7 +100,7 @@ async function addHttpRoutes(app: Application) {
}
const userService = new UserService()
const resetPassword = await userService.newPassword( urlToken, password )
const resetPassword = await userService.newPassword(urlToken, password)
if (resetPassword) {
return res.status(200).json({ message: 'Password has been reset' })

View File

@ -35,10 +35,10 @@ export const registerAccountSchema = z.object({
export const resetPasswordSchema = z.object({
email: z
.string()
.min(3, { message: 'Email must be at least 3 characters long' })
.max(255, { message: 'Email must be at most 255 characters long' })
.regex(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, { message: 'Email must be valid' })
.string()
.min(3, { message: 'Email must be at least 3 characters long' })
.max(255, { message: 'Email must be at most 255 characters long' })
.regex(/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/, { message: 'Email must be valid' })
})
export const newPasswordSchema = z.object({