From 761ed1de9a3d5df2edc2218cbea7a736bb63947d Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Thu, 4 Dec 2025 21:07:14 -0500 Subject: [PATCH] ensure unique niceId for site resources and normal resources --- server/db/names.ts | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/server/db/names.ts b/server/db/names.ts index 2da38f10..a3da96e7 100644 --- a/server/db/names.ts +++ b/server/db/names.ts @@ -42,11 +42,17 @@ export async function getUniqueResourceName(orgId: string): Promise { } const name = generateName(); - const count = await db - .select({ niceId: resources.niceId, orgId: resources.orgId }) - .from(resources) - .where(and(eq(resources.niceId, name), eq(resources.orgId, orgId))); - if (count.length === 0) { + const [resourceCount, siteResourceCount] = await Promise.all([ + db + .select({ niceId: resources.niceId, orgId: resources.orgId }) + .from(resources) + .where(and(eq(resources.niceId, name), eq(resources.orgId, orgId))), + db + .select({ niceId: siteResources.niceId, orgId: siteResources.orgId }) + .from(siteResources) + .where(and(eq(siteResources.niceId, name), eq(siteResources.orgId, orgId))) + ]); + if (resourceCount.length === 0 && siteResourceCount.length === 0) { return name; } loops++; @@ -61,11 +67,17 @@ export async function getUniqueSiteResourceName(orgId: string): Promise } const name = generateName(); - const count = await db - .select({ niceId: siteResources.niceId, orgId: siteResources.orgId }) - .from(siteResources) - .where(and(eq(siteResources.niceId, name), eq(siteResources.orgId, orgId))); - if (count.length === 0) { + const [resourceCount, siteResourceCount] = await Promise.all([ + db + .select({ niceId: resources.niceId, orgId: resources.orgId }) + .from(resources) + .where(and(eq(resources.niceId, name), eq(resources.orgId, orgId))), + db + .select({ niceId: siteResources.niceId, orgId: siteResources.orgId }) + .from(siteResources) + .where(and(eq(siteResources.niceId, name), eq(siteResources.orgId, orgId))) + ]); + if (resourceCount.length === 0 && siteResourceCount.length === 0) { return name; } loops++;