From bc63747efec6067931573f43e64f453c143329ae Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 23 Jun 2026 18:12:51 -0400 Subject: [PATCH] Refactor out transactions and always call rebuild on update --- .../siteResource/addClientToSiteResource.ts | 8 +++----- .../siteResource/addRoleToSiteResource.ts | 8 +++----- .../siteResource/addUserToSiteResource.ts | 8 +++----- .../removeClientFromSiteResource.ts | 18 ++++++++--------- .../removeRoleFromSiteResource.ts | 18 ++++++++--------- .../removeUserFromSiteResource.ts | 18 ++++++++--------- .../siteResource/updateSiteResource.ts | 20 ++++--------------- 7 files changed, 37 insertions(+), 61 deletions(-) diff --git a/server/routers/siteResource/addClientToSiteResource.ts b/server/routers/siteResource/addClientToSiteResource.ts index 3b3238527..4a6dd141e 100644 --- a/server/routers/siteResource/addClientToSiteResource.ts +++ b/server/routers/siteResource/addClientToSiteResource.ts @@ -148,11 +148,9 @@ export async function addClientToSiteResource( ); } - await db.transaction(async (trx) => { - await trx.insert(clientSiteResources).values({ - clientId, - siteResourceId - }); + await db.insert(clientSiteResources).values({ + clientId, + siteResourceId }); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { diff --git a/server/routers/siteResource/addRoleToSiteResource.ts b/server/routers/siteResource/addRoleToSiteResource.ts index 31220df14..05186c351 100644 --- a/server/routers/siteResource/addRoleToSiteResource.ts +++ b/server/routers/siteResource/addRoleToSiteResource.ts @@ -155,11 +155,9 @@ export async function addRoleToSiteResource( ); } - await db.transaction(async (trx) => { - await trx.insert(roleSiteResources).values({ - roleId, - siteResourceId - }); + await db.insert(roleSiteResources).values({ + roleId, + siteResourceId }); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { diff --git a/server/routers/siteResource/addUserToSiteResource.ts b/server/routers/siteResource/addUserToSiteResource.ts index 51a7f980f..c35357993 100644 --- a/server/routers/siteResource/addUserToSiteResource.ts +++ b/server/routers/siteResource/addUserToSiteResource.ts @@ -124,11 +124,9 @@ export async function addUserToSiteResource( ); } - await db.transaction(async (trx) => { - await trx.insert(userSiteResources).values({ - userId, - siteResourceId - }); + await db.insert(userSiteResources).values({ + userId, + siteResourceId }); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { diff --git a/server/routers/siteResource/removeClientFromSiteResource.ts b/server/routers/siteResource/removeClientFromSiteResource.ts index 53cac4d93..c53e214cd 100644 --- a/server/routers/siteResource/removeClientFromSiteResource.ts +++ b/server/routers/siteResource/removeClientFromSiteResource.ts @@ -148,16 +148,14 @@ export async function removeClientFromSiteResource( ); } - await db.transaction(async (trx) => { - await trx - .delete(clientSiteResources) - .where( - and( - eq(clientSiteResources.siteResourceId, siteResourceId), - eq(clientSiteResources.clientId, clientId) - ) - ); - }); + await db + .delete(clientSiteResources) + .where( + and( + eq(clientSiteResources.siteResourceId, siteResourceId), + eq(clientSiteResources.clientId, clientId) + ) + ); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { logger.error( diff --git a/server/routers/siteResource/removeRoleFromSiteResource.ts b/server/routers/siteResource/removeRoleFromSiteResource.ts index 2904edfaa..6dd978e24 100644 --- a/server/routers/siteResource/removeRoleFromSiteResource.ts +++ b/server/routers/siteResource/removeRoleFromSiteResource.ts @@ -156,16 +156,14 @@ export async function removeRoleFromSiteResource( ); } - await db.transaction(async (trx) => { - await trx - .delete(roleSiteResources) - .where( - and( - eq(roleSiteResources.siteResourceId, siteResourceId), - eq(roleSiteResources.roleId, roleId) - ) - ); - }); + await db + .delete(roleSiteResources) + .where( + and( + eq(roleSiteResources.siteResourceId, siteResourceId), + eq(roleSiteResources.roleId, roleId) + ) + ); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { logger.error( diff --git a/server/routers/siteResource/removeUserFromSiteResource.ts b/server/routers/siteResource/removeUserFromSiteResource.ts index c7b79cd2e..67e6ac960 100644 --- a/server/routers/siteResource/removeUserFromSiteResource.ts +++ b/server/routers/siteResource/removeUserFromSiteResource.ts @@ -126,16 +126,14 @@ export async function removeUserFromSiteResource( ); } - await db.transaction(async (trx) => { - await trx - .delete(userSiteResources) - .where( - and( - eq(userSiteResources.siteResourceId, siteResourceId), - eq(userSiteResources.userId, userId) - ) - ); - }); + await db + .delete(userSiteResources) + .where( + and( + eq(userSiteResources.siteResourceId, siteResourceId), + eq(userSiteResources.userId, userId) + ) + ); rebuildClientAssociationsFromSiteResource(siteResource).catch((e) => { logger.error( diff --git a/server/routers/siteResource/updateSiteResource.ts b/server/routers/siteResource/updateSiteResource.ts index af185c50c..9b79121fa 100644 --- a/server/routers/siteResource/updateSiteResource.ts +++ b/server/routers/siteResource/updateSiteResource.ts @@ -390,7 +390,6 @@ export async function updateSiteResource( ); } - let sitesChanged = false; const existingSiteIds = existingSiteResource.networkId ? await db .select() @@ -399,16 +398,7 @@ export async function updateSiteResource( eq(siteNetworks.networkId, existingSiteResource.networkId) ) : []; - const existingSiteIdSet = new Set(existingSiteIds.map((s) => s.siteId)); - const newSiteIdSet = new Set(siteIds); - - if ( - existingSiteIdSet.size !== newSiteIdSet.size || - ![...existingSiteIdSet].every((id) => newSiteIdSet.has(id)) - ) { - sitesChanged = true; - } let fullDomain: string | null = null; let finalSubdomain: string | null = null; @@ -615,15 +605,13 @@ export async function updateSiteResource( throw new Error("No updated resource found after update"); } - if (sitesChanged) { - rebuildClientAssociationsFromSiteResource( - updatedSiteResource - ).catch((e) => { + rebuildClientAssociationsFromSiteResource(updatedSiteResource).catch( + (e) => { logger.error( `Failed to rebuild client associations for site resource ${siteResourceId}. Error: ${e}` ); - }); - } + } + ); handleMessagingForUpdatedSiteResource( existingSiteResource,