refactor: move server-only code (resolves #2)
PullRequest / publish (pull_request) Failing after 2m22s
Commit / ci (push) Successful in 10m38s

This commit is contained in:
2026-04-03 13:01:30 +02:00
parent 2e16cf9d51
commit 7d9ff9ff2b
5 changed files with 6 additions and 6 deletions
+43
View File
@@ -0,0 +1,43 @@
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?' });
const res = await db
.select({ id: users.id })
.from(users)
.limit(1)
.where(eq(users.email, session.user.email ?? 'eaf9302d-9525-4f3e-8147-9620d2076f67')); //uuid as default to find nothing
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 } };
}