From b4dc29fa3d08a74dd294f99169a09c781a9c70f1 Mon Sep 17 00:00:00 2001 From: Mannu Date: Sun, 10 May 2026 05:00:26 +0530 Subject: [PATCH] feat: add signin API and setup route --- src/app/api/auth/signin/route.ts | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/app/api/auth/signin/route.ts 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