diff --git a/src/app/api/auth/signin/route.ts b/src/app/api/auth/signin/route.ts new file mode 100644 index 0000000..71abf7e --- /dev/null +++ b/src/app/api/auth/signin/route.ts @@ -0,0 +1,33 @@ +import { NextResponse } from "next/server"; +import { db } from "@/db"; +import { users } from "@/db/schema/auth"; +import { eq } from "drizzle-orm"; + +export async function POST(request: Request) { + const { email } = await request.json(); + + if (!email) { + return NextResponse.json({ error: "Email required" }, { status: 400 }); + } + + try { + // Find or create user + let user = await db.query.users.findFirst({ + where: eq(users.email, email), + }); + + if (!user) { + const [newUser] = await db + .insert(users) + .values({ email }) + .returning(); + user = newUser; + } + + // For demo, just return success - in real app, send magic link via email + return NextResponse.json({ success: true, userId: user.id }); + } catch (error) { + console.error(error); + return NextResponse.json({ error: String(error) }, { status: 500 }); + } +} \ No newline at end of file