diff --git a/apps/webservice/src/app/api/v1/cloud-locations/[provider]/route.ts b/apps/webservice/src/app/api/v1/cloud-locations/[provider]/route.ts index 0e8cbc074..9c764abab 100644 --- a/apps/webservice/src/app/api/v1/cloud-locations/[provider]/route.ts +++ b/apps/webservice/src/app/api/v1/cloud-locations/[provider]/route.ts @@ -2,8 +2,11 @@ import { NextResponse } from "next/server"; import { cloudRegionsGeo } from "@ctrlplane/validators/resources"; -export function GET(_: Request, { params }: { params: { provider: string } }) { - const { provider } = params; +export async function GET( + _: Request, + { params }: { params: Promise<{ provider: string }> }, +) { + const { provider } = await params; // Check if provider exists if (cloudRegionsGeo[provider] == null) diff --git a/apps/webservice/src/app/api/v1/deployment-versions/[deploymentVersionId]/route.ts b/apps/webservice/src/app/api/v1/deployment-versions/[deploymentVersionId]/route.ts index ba7feba91..fffaf7e33 100644 --- a/apps/webservice/src/app/api/v1/deployment-versions/[deploymentVersionId]/route.ts +++ b/apps/webservice/src/app/api/v1/deployment-versions/[deploymentVersionId]/route.ts @@ -27,17 +27,18 @@ export const PATCH = request() .use(authn) .use(parseBody(patchSchema)) .use( - authz(({ can, extra: { params } }) => - can - .perform(Permission.DeploymentVersionUpdate) - .on({ type: "deploymentVersion", id: params.deploymentVersionId }), + authz(({ can, params }) => + can.perform(Permission.DeploymentVersionUpdate).on({ + type: "deploymentVersion", + id: params.deploymentVersionId ?? "", + }), ), ) .handle< { body: z.infer; user: SCHEMA.User }, - { params: { deploymentVersionId: string } } + { params: Promise<{ deploymentVersionId: string }> } >(async (ctx, { params }) => { - const { deploymentVersionId } = params; + const { deploymentVersionId } = await params; const { body, user, req } = ctx; try { diff --git a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/deployment-version-channels/name/[name]/route.ts b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/deployment-version-channels/name/[name]/route.ts index 48a72607f..65c911b86 100644 --- a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/deployment-version-channels/name/[name]/route.ts +++ b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/deployment-version-channels/name/[name]/route.ts @@ -10,24 +10,22 @@ import { request } from "~/app/api/v1/middleware"; export const DELETE = request() .use(authn) .use( - authz(async ({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.DeploymentVersionChannelDelete) - .on({ type: "deployment", id: params.deploymentId }), + .on({ type: "deployment", id: params.deploymentId ?? "" }), ), ) - .handle( + .handle }>( async (ctx, { params }) => { + const { deploymentId, name } = await params; try { await ctx.db .delete(schema.deploymentVersionChannel) .where( and( - eq( - schema.deploymentVersionChannel.deploymentId, - params.deploymentId, - ), - eq(schema.deploymentVersionChannel.name, params.name), + eq(schema.deploymentVersionChannel.deploymentId, deploymentId), + eq(schema.deploymentVersionChannel.name, name), ), ); diff --git a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/release-channels/name/[name]/route.ts b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/release-channels/name/[name]/route.ts index 18d18e713..87e66647e 100644 --- a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/release-channels/name/[name]/route.ts +++ b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/release-channels/name/[name]/route.ts @@ -10,24 +10,22 @@ import { request } from "~/app/api/v1/middleware"; export const DELETE = request() .use(authn) .use( - authz(async ({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.DeploymentVersionChannelDelete) - .on({ type: "deployment", id: params.deploymentId }), + .on({ type: "deployment", id: params.deploymentId ?? "" }), ), ) - .handle( + .handle }>( async (ctx, { params }) => { + const { deploymentId, name } = await params; try { await ctx.db .delete(schema.deploymentVersionChannel) .where( and( - eq( - schema.deploymentVersionChannel.deploymentId, - params.deploymentId, - ), - eq(schema.deploymentVersionChannel.name, params.name), + eq(schema.deploymentVersionChannel.deploymentId, deploymentId), + eq(schema.deploymentVersionChannel.name, name), ), ); diff --git a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/route.ts b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/route.ts index 59eeeaa47..7b66cfb1e 100644 --- a/apps/webservice/src/app/api/v1/deployments/[deploymentId]/route.ts +++ b/apps/webservice/src/app/api/v1/deployments/[deploymentId]/route.ts @@ -13,18 +13,19 @@ import { request } from "../../middleware"; export const GET = request() .use(authn) .use( - authz(({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.DeploymentGet) - .on({ type: "deployment", id: params.deploymentId }), + .on({ type: "deployment", id: params.deploymentId ?? "" }), ), ) - .handle<{ db: Tx }, { params: { deploymentId: string } }>( + .handle<{ db: Tx }, { params: Promise<{ deploymentId: string }> }>( async ({ db }, { params }) => { + const { deploymentId } = await params; const deployment = await db .select() .from(SCHEMA.deployment) - .where(eq(SCHEMA.deployment.id, params.deploymentId)) + .where(eq(SCHEMA.deployment.id, deploymentId)) .then(takeFirstOrNull); if (deployment == null) @@ -40,19 +41,20 @@ export const GET = request() export const DELETE = request() .use(authn) .use( - authz(({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.DeploymentDelete) - .on({ type: "deployment", id: params.deploymentId }), + .on({ type: "deployment", id: params.deploymentId ?? "" }), ), ) - .handle<{ db: Tx }, { params: { deploymentId: string } }>( + .handle<{ db: Tx }, { params: Promise<{ deploymentId: string }> }>( async ({ db }, { params }) => { try { + const { deploymentId } = await params; const deployment = await db .select() .from(SCHEMA.deployment) - .where(eq(SCHEMA.deployment.id, params.deploymentId)) + .where(eq(SCHEMA.deployment.id, deploymentId)) .then(takeFirstOrNull); if (deployment == null) @@ -63,7 +65,7 @@ export const DELETE = request() await db .delete(SCHEMA.deployment) - .where(eq(SCHEMA.deployment.id, params.deploymentId)); + .where(eq(SCHEMA.deployment.id, deploymentId)); return NextResponse.json({ deployment, message: "Deployment deleted" }); } catch (error) { @@ -79,10 +81,10 @@ export const DELETE = request() export const PATCH = request() .use(authn) .use( - authz(async ({ can, extra: { params } }) => { + authz(({ can, params }) => { return can .perform(Permission.DeploymentUpdate) - .on({ type: "deployment", id: (await params).deploymentId }); + .on({ type: "deployment", id: params.deploymentId ?? "" }); }), ) .handle<{ db: Tx }, { params: Promise<{ deploymentId: string }> }>( diff --git a/apps/webservice/src/app/api/v1/environments/[environmentId]/route.ts b/apps/webservice/src/app/api/v1/environments/[environmentId]/route.ts index 6330893f4..3fad48f5c 100644 --- a/apps/webservice/src/app/api/v1/environments/[environmentId]/route.ts +++ b/apps/webservice/src/app/api/v1/environments/[environmentId]/route.ts @@ -10,16 +10,17 @@ import { request } from "../../middleware"; export const GET = request() .use(authn) .use( - authz(({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.SystemGet) - .on({ type: "environment", id: params.environmentId }), + .on({ type: "environment", id: params.environmentId ?? "" }), ), ) - .handle( + .handle }>( async (ctx, { params }) => { + const { environmentId } = await params; const environment = await ctx.db.query.environment.findFirst({ - where: eq(schema.environment.id, params.environmentId), + where: eq(schema.environment.id, environmentId), with: { policy: true, metadata: true }, }); if (environment == null) @@ -38,16 +39,17 @@ export const GET = request() export const DELETE = request() .use(authn) .use( - authz(({ can, extra: { params } }) => + authz(({ can, params }) => can .perform(Permission.SystemDelete) - .on({ type: "environment", id: params.environmentId }), + .on({ type: "environment", id: params.environmentId ?? "" }), ), ) - .handle( + .handle }>( async (ctx, { params }) => { + const { environmentId } = await params; const findEnv = await ctx.db.query.environment.findFirst({ - where: eq(schema.environment.id, params.environmentId), + where: eq(schema.environment.id, environmentId), }); if (findEnv == null) return NextResponse.json( @@ -57,7 +59,7 @@ export const DELETE = request() const environment = await ctx.db .delete(schema.environment) - .where(eq(schema.environment.id, params.environmentId)) + .where(eq(schema.environment.id, environmentId)) .returning(); return NextResponse.json(environment, { status: 200 });