yo-next-auth/actions/reset.ts

24 lines
703 B
TypeScript

'use server'
import { infer as zInfer } from 'zod'
import { ResetSchema } from '@/schemas'
import { getUserByEmail } from '@/data/user'
import { sendPasswordResetEmail } from '@/actions/send-verification-email'
export const reset = async (values: zInfer<typeof ResetSchema>) => {
const validatedFields = ResetSchema.safeParse(values)
if (!validatedFields.success) {
return { error: 'auth.form.error.invalid_fields' }
}
const { email } = validatedFields.data
const existingUser = await getUserByEmail(email)
if (!existingUser) {
return { error: 'auth.email.success.reset_email_sent' }
}
return await sendPasswordResetEmail(existingUser.email as string, existingUser.name)
}