From 6099e06a71aa9376195ea88fc00113b7a4407e57 Mon Sep 17 00:00:00 2001 From: kaf-lamed-beyt Date: Sun, 16 Jul 2023 15:21:19 +0100 Subject: [PATCH] update JobPresenter query to use findFirst. --- .../app/presenters/JobPresenter.server.ts | 30 ++++++++++++++----- .../route.tsx | 1 - 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/apps/webapp/app/presenters/JobPresenter.server.ts b/apps/webapp/app/presenters/JobPresenter.server.ts index 16560045c..ae1ee1b87 100644 --- a/apps/webapp/app/presenters/JobPresenter.server.ts +++ b/apps/webapp/app/presenters/JobPresenter.server.ts @@ -12,15 +12,31 @@ export class JobsListPresenter { public async call({ slug, userId, - }: { - slug: string; - userId: string; - }): Promise { - return this.#prismaClient.job.findMany({ + }: Pick & { userId: User["id"] }) { + const project = await this.#prismaClient.project.findFirst({ where: { - projectId: slug, - id: userId, + slug, + organization: { + members: { + some: { + userId, + }, + }, + }, + }, + select: { + jobs: { + where: { + internal: false, + }, + }, }, }); + + if (!project) { + return undefined; + } + + return project.jobs.filter((job) => !job.internal); } } diff --git a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx index dde5fbd9d..ec914e993 100644 --- a/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx +++ b/apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam._index/route.tsx @@ -38,7 +38,6 @@ export const loader = async ({ request, params }: LoaderArgs) => { const { projectParam } = params; const userId = await requireUserId(request); invariant(projectParam, "projectParam not found"); - invariant(userId, "jobId not found"); try { const jobsPresenter = new JobsListPresenter();