sendou.ink/app/features/api/loaders/api.server.ts
2025-11-09 11:07:20 +02:00

25 lines
627 B
TypeScript

import type { LoaderFunctionArgs } from "@remix-run/node";
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,
};
};