Added reset password function + basic mail layout

This commit is contained in:
2024-10-27 21:30:33 +01:00
parent 8f8f019ab7
commit 5a36d10f0e
7 changed files with 86 additions and 2 deletions

View File

@ -2,7 +2,7 @@ import { Application, Request, Response } from 'express'
import UserService from '../services/userService'
import jwt from 'jsonwebtoken'
import config from './config'
import { loginAccountSchema, registerAccountSchema } from './zodTypes'
import { loginAccountSchema, registerAccountSchema, resetPasswordSchema } from './zodTypes'
import fs from 'fs'
import { httpLogger } from './logger'
import { getPublicPath } from './storage'
@ -58,6 +58,30 @@ async function addHttpRoutes(app: Application) {
return res.status(400).json({ message: 'Failed to register user' })
})
/**
* Register
* @param req
* @param res
*/
app.post('/reset-password', async (req: Request, res: Response) => {
const { email } = req.body
try {
resetPasswordSchema.parse({ email })
} catch (error: any) {
return res.status(400).json({ message: error.errors[0]?.message })
}
const userService = new UserService()
const user = await userService.resetPassword( email )
if (user) {
return res.status(200).json({ message: 'Email has been sent' })
}
return res.status(400).json({ message: 'Failed to send password reset request' })
})
/**
* Get all tiles from a zone as an array of ids
* @param req