mirror of
https://github.com/harivansh-afk/Saas-Teamspace.git
synced 2026-04-21 05:02:17 +00:00
initial commit
This commit is contained in:
commit
ef9ccf22d3
133 changed files with 20802 additions and 0 deletions
39
actions/register.ts
Normal file
39
actions/register.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
'use server'
|
||||
import * as z from 'zod'
|
||||
import { RegisterSchema } from '@/schemas'
|
||||
import bcrypt from 'bcrypt'
|
||||
import { db } from '@/lib/db'
|
||||
import { getUserByEmail } from '@/data/user'
|
||||
import { generateVerificationToken } from '@/lib/tokens'
|
||||
import { sendVerificationEmail } from '@/lib/mail'
|
||||
|
||||
export const register = async (values: z.infer<typeof RegisterSchema>) => {
|
||||
const validatedFields = RegisterSchema.safeParse(values)
|
||||
|
||||
if (!validatedFields.success) {
|
||||
return { error: 'Invalid fields' }
|
||||
}
|
||||
|
||||
const { name, email, password } = validatedFields.data
|
||||
const hashedPassword = await bcrypt.hash(password, 10)
|
||||
|
||||
const exisitingUser = await getUserByEmail(email)
|
||||
|
||||
if (exisitingUser) {
|
||||
return { error: 'Email already exists!' }
|
||||
}
|
||||
|
||||
await db.user.create({
|
||||
data: {
|
||||
name,
|
||||
email,
|
||||
password: hashedPassword
|
||||
}
|
||||
})
|
||||
|
||||
const verificationToken = await generateVerificationToken(email)
|
||||
|
||||
await sendVerificationEmail(verificationToken.email, verificationToken.token)
|
||||
|
||||
return { success: 'Email sent!' }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue