From 8540eedab4e23beba7448cb358579b2a165805dc Mon Sep 17 00:00:00 2001 From: Alessandro Magionami Date: Mon, 31 Mar 2025 15:48:04 +0200 Subject: [PATCH] feat(workspaces): code review changes --- .../modules/workspaces/repositories/users.ts | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/packages/server/modules/workspaces/repositories/users.ts b/packages/server/modules/workspaces/repositories/users.ts index c42d55217..7a09b9f0b 100644 --- a/packages/server/modules/workspaces/repositories/users.ts +++ b/packages/server/modules/workspaces/repositories/users.ts @@ -21,9 +21,9 @@ export const setUserActiveWorkspaceFactory = ]) } -function buildInvitableCollaboratorsByProjectIdQuery( - db: Knex, - { +const buildInvitableCollaboratorsByProjectIdQueryFactory = + ({ db }: { db: Knex }) => + ({ workspaceId, projectId, search @@ -31,31 +31,30 @@ function buildInvitableCollaboratorsByProjectIdQuery( workspaceId: string projectId: string search?: string - } -) { - const query = tables - .users(db) - .join(WorkspaceAcl.name, WorkspaceAcl.col.userId, Users.col.id) - .join(Streams.name, Streams.col.workspaceId, WorkspaceAcl.col.workspaceId) - .where(WorkspaceAcl.col.workspaceId, workspaceId) - .whereNotIn( - Users.col.id, - tables - .streamAcl(db) - .select(StreamAcl.col.resourceId) - .whereNot(StreamAcl.col.resourceId, projectId) - ) - if (search) { - query - .join(UserEmails.name, UserEmails.col.userId, Users.col.id) - .andWhere((w) => - w - .whereLike(Users.col.name, `%${search}%`) - .orWhereLike(UserEmails.col.email, `%${search}%`) + }) => { + const query = tables + .users(db) + .join(WorkspaceAcl.name, WorkspaceAcl.col.userId, Users.col.id) + .join(Streams.name, Streams.col.workspaceId, WorkspaceAcl.col.workspaceId) + .where(WorkspaceAcl.col.workspaceId, workspaceId) + .whereNotIn( + Users.col.id, + tables + .streamAcl(db) + .select(StreamAcl.col.resourceId) + .whereNot(StreamAcl.col.resourceId, projectId) ) + if (search) { + query + .join(UserEmails.name, UserEmails.col.userId, Users.col.id) + .andWhere((w) => + w + .whereLike(Users.col.name, `%${search}%`) + .orWhereLike(UserEmails.col.email, `%${search}%`) + ) + } + return query.groupBy(Users.col.id) } - return query.groupBy(Users.col.id) -} export const getInvitableCollaboratorsByProjectIdFactory = ({ db }: { db: Knex }) => @@ -73,7 +72,7 @@ export const getInvitableCollaboratorsByProjectIdFactory = limit: number }): Promise => { const { workspaceId, projectId, search } = filter - const query = buildInvitableCollaboratorsByProjectIdQuery(db, { + const query = buildInvitableCollaboratorsByProjectIdQueryFactory({ db })({ workspaceId, projectId, search @@ -99,7 +98,7 @@ export const countInvitableCollaboratorsByProjectIdFactory = } }) => { const { workspaceId, projectId, search } = filter - const query = buildInvitableCollaboratorsByProjectIdQuery(db, { + const query = buildInvitableCollaboratorsByProjectIdQueryFactory({ db })({ workspaceId, projectId, search