Files
classroomio/apps/dashboard/src/hooks.server.ts
T

40 lines
878 B
TypeScript
Raw Normal View History

2025-01-09 01:30:01 +01:00
import type { Handle } from '@sveltejs/kit';
2025-02-16 09:24:13 +01:00
import { validateUser } from '$lib/utils/services/middlewares';
2025-01-09 01:30:01 +01:00
const PUBLIC_ROUTES = [
'/api/completion',
'/api/verify',
2025-01-09 01:30:01 +01:00
'student_prove_payment',
'teacher_student_buycourse',
2025-01-10 07:53:00 +01:00
'/api/polar',
'/api/lmz'
2025-01-09 01:30:01 +01:00
];
function isPublicRoute(pathname: string) {
return PUBLIC_ROUTES.some((route) => pathname.includes(route));
}
export const handle: Handle = async ({ event, resolve }) => {
const response = await resolve(event);
const { pathname } = event.url;
// Only validate API routes
if (!pathname.includes('/api')) {
return response;
}
// Skip public routes
if (isPublicRoute(pathname)) {
return response;
}
const accessToken = event.request.headers.get('Authorization')!;
2025-02-16 09:24:13 +01:00
const user = await validateUser(accessToken);
response.headers.set('user_id', `${user.id}`);
2025-01-09 01:30:01 +01:00
return response;
};