Sistema completo de gestão de PDI com: - Autenticação com email/senha e Google OAuth - Workspaces privados isolados - Sistema de convites com código único - Interface profissional com Next.js 14 - Backend NestJS com PostgreSQL - Docker com Nginx e SSL Desenvolvido por Sergio Correa
52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
// app/api/auth/register/route.ts
|
|
import { NextRequest, NextResponse } from "next/server"
|
|
import { createUser } from "@/lib/auth/credentials"
|
|
|
|
export async function POST(request: NextRequest) {
|
|
try {
|
|
const { email, password, name } = await request.json()
|
|
|
|
// Validações
|
|
if (!email || !password || !name) {
|
|
return NextResponse.json(
|
|
{ error: "Todos os campos são obrigatórios" },
|
|
{ status: 400 }
|
|
)
|
|
}
|
|
|
|
if (password.length < 6) {
|
|
return NextResponse.json(
|
|
{ error: "A senha deve ter pelo menos 6 caracteres" },
|
|
{ status: 400 }
|
|
)
|
|
}
|
|
|
|
// Criar usuário
|
|
const user = await createUser(email, password, name)
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
user: {
|
|
id: user.id,
|
|
email: user.email,
|
|
name: user.name
|
|
}
|
|
})
|
|
} catch (error: any) {
|
|
console.error("Erro ao registrar:", error)
|
|
|
|
if (error.message === "Email já cadastrado") {
|
|
return NextResponse.json(
|
|
{ error: "Este email já está cadastrado" },
|
|
{ status: 400 }
|
|
)
|
|
}
|
|
|
|
return NextResponse.json(
|
|
{ error: "Erro ao criar conta" },
|
|
{ status: 500 }
|
|
)
|
|
}
|
|
}
|
|
|