28 lines
617 B
TypeScript
28 lines
617 B
TypeScript
import { cookies } from "next/headers";
|
|
import { eq } from "drizzle-orm";
|
|
import { db } from "@/lib/db";
|
|
import { users } from "@/lib/schema";
|
|
|
|
export async function getUserFromSession() {
|
|
const cookieStore = await cookies();
|
|
const session = cookieStore.get("session");
|
|
|
|
if (!session) {
|
|
return null;
|
|
}
|
|
|
|
// Assumption: session cookie value === users.id
|
|
const userId = session.value;
|
|
|
|
const [user] = await db
|
|
.select({
|
|
id: users.id,
|
|
email: users.email,
|
|
createdAt: users.createdAt,
|
|
})
|
|
.from(users)
|
|
.where(eq(users.id, userId))
|
|
.limit(1);
|
|
|
|
return user ?? null;
|
|
}
|