sendou.ink/app/features/api/loaders/api.server.ts
2025-12-29 19:21:11 +02:00

25 lines
624 B
TypeScript

import type { LoaderFunctionArgs } from "react-router";
import { requireUser } from "~/features/auth/core/user.server";
import * as ApiRepository from "../ApiRepository.server";
import { checkUserHasApiAccess } from "../core/perms";
export const loader = async ({ request }: LoaderFunctionArgs) => {
const user = await requireUser(request);
const hasApiAccess = await checkUserHasApiAccess(user);
if (!hasApiAccess) {
return {
hasAccess: false,
apiToken: null,
};
}
const apiToken = await ApiRepository.findTokenByUserId(user.id);
return {
hasAccess: true,
apiToken: apiToken?.token ?? null,
};
};