fix(workspaces): add filtering to workspace team query (#2586)
* chore(workspaces): add some tests for new filters * fix(workspaces): args style
This commit is contained in:
@@ -168,9 +168,7 @@ export const upsertWorkspaceRoleFactory =
|
||||
|
||||
export const getWorkspaceCollaboratorsFactory =
|
||||
({ db }: { db: Knex }): GetWorkspaceCollaborators =>
|
||||
async (params: { workspaceId: string; role?: WorkspaceRoles }) => {
|
||||
const { workspaceId, role } = params
|
||||
|
||||
async ({ workspaceId, filter = {} }) => {
|
||||
const query = DbWorkspaceAcl.knex(db)
|
||||
.select<Array<UserWithRole & { workspaceRole: WorkspaceRoles }>>([
|
||||
...Users.cols,
|
||||
@@ -182,6 +180,14 @@ export const getWorkspaceCollaboratorsFactory =
|
||||
.innerJoin(ServerAcl.name, ServerAcl.col.userId, Users.col.id)
|
||||
.groupBy(Users.col.id, DbWorkspaceAcl.col.role)
|
||||
|
||||
const { search, role } = filter || {}
|
||||
|
||||
if (search) {
|
||||
query
|
||||
.where(Users.col.name, 'ILIKE', `%${search}%`)
|
||||
.orWhere(Users.col.email, 'ILIKE', `%${search}%`)
|
||||
}
|
||||
|
||||
if (role) {
|
||||
query.andWhere(DbWorkspaceAcl.col.role, role)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user