diff --git a/packages/web/src/app/[domain]/repos/page.tsx b/packages/web/src/app/[domain]/repos/page.tsx index 60031811..c5ed9689 100644 --- a/packages/web/src/app/[domain]/repos/page.tsx +++ b/packages/web/src/app/[domain]/repos/page.tsx @@ -1,10 +1,12 @@ -import { auth } from "@/auth"; import { env } from "@/env.mjs"; -import { getPrismaClient } from "@/prisma"; import { RepoJob } from "@sourcebot/db"; import { Header } from "../components/header"; import { RepoStatus } from "./columns"; import { RepositoryTable } from "./repositoryTable"; +import { sew } from "@/actions"; +import { withOptionalAuthV2 } from "@/withAuthV2"; +import { isServiceError } from "@/lib/utils"; +import { ServiceErrorException } from "@/lib/serviceError"; function getRepoStatus(repo: { indexedAt: Date | null, jobs: RepoJob[] }): RepoStatus { const latestJob = repo.jobs[0]; @@ -23,14 +25,10 @@ export default async function ReposPage(props: { params: Promise<{ domain: strin domain } = params; - const session = await auth(); - const prisma = getPrismaClient(session?.user?.id); - - const repos = await prisma.repo.findMany({ - include: { - jobs: true, - } - }); + const repos = await getReposWithJobs(); + if (isServiceError(repos)) { + throw new ServiceErrorException(repos); + } return (
@@ -54,3 +52,14 @@ export default async function ReposPage(props: { params: Promise<{ domain: strin
) } + +const getReposWithJobs = async () => sew(() => + withOptionalAuthV2(async ({ prisma }) => { + const repos = await prisma.repo.findMany({ + include: { + jobs: true, + } + }); + + return repos; + })); \ No newline at end of file