fix(cloud): free partner subscription slot when workspace is deleted
This commit is contained in:
@@ -449,6 +449,20 @@ export const workspaceRouter = createTRPCRouter({
|
|||||||
});
|
});
|
||||||
await assertPermission(ctx.db, userId, workspace.id, "workspace:delete");
|
await assertPermission(ctx.db, userId, workspace.id, "workspace:delete");
|
||||||
|
|
||||||
|
if (env("NEXT_PUBLIC_KAN_ENV") === "cloud") {
|
||||||
|
const subs = await subscriptionRepo.getByReferenceId(
|
||||||
|
ctx.db,
|
||||||
|
input.workspacePublicId,
|
||||||
|
);
|
||||||
|
await Promise.all(
|
||||||
|
subs
|
||||||
|
.filter((s) => !!s.partnerLicenseKey)
|
||||||
|
.map((s) =>
|
||||||
|
subscriptionRepo.updateById(ctx.db, s.id, { referenceId: null }),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
await workspaceRepo.hardDelete(ctx.db, input.workspacePublicId);
|
await workspaceRepo.hardDelete(ctx.db, input.workspacePublicId);
|
||||||
|
|
||||||
return { success: true };
|
return { success: true };
|
||||||
|
|||||||
Reference in New Issue
Block a user