chore: resolve merge conflicts
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import type { Session, User } from '@auth/sveltekit';
|
||||
import { error } from '@sveltejs/kit';
|
||||
import { db } from './db';
|
||||
import { users } from './db/schema';
|
||||
import { eq } from 'drizzle-orm';
|
||||
interface Event {
|
||||
locals: {
|
||||
auth(): Promise<Session | null>;
|
||||
};
|
||||
}
|
||||
interface UserWithId extends User {
|
||||
id: string;
|
||||
email: string;
|
||||
}
|
||||
|
||||
export async function ensureAuth(event: Event): Promise<UserWithId> {
|
||||
const session = await getSession(event);
|
||||
if (!session) error(401, { message: 'Du muesch di zersch iiloge' });
|
||||
|
||||
const user = session?.user;
|
||||
if (!user || !user.email || !user.id) {
|
||||
error(401, { message: 'Du muesch di zersch iiloge' });
|
||||
}
|
||||
|
||||
return { ...user, id: user.id, email: user.email }; // weird thingamajig so that ts compiler is happy
|
||||
}
|
||||
export async function getSession(event: Event) {
|
||||
const session = await event.locals.auth();
|
||||
if (!session) return null;
|
||||
if (!session.user) error(403, { message: 'Di gits garnid. Vilich nomau usloge u iiloge?' });
|
||||
if (!session?.user?.email) return null;
|
||||
|
||||
const res = await db
|
||||
.select({ id: users.id })
|
||||
.from(users)
|
||||
.limit(1)
|
||||
.where(eq(users.email, session.user.email));
|
||||
|
||||
if (!res[0]?.id) {
|
||||
error(403, { message: 'Di gits garnid. Vilich nomau usloge u iiloge?' });
|
||||
}
|
||||
|
||||
return { expires: session.expires, user: { ...session.user, id: res[0].id } };
|
||||
}
|
||||
Reference in New Issue
Block a user