feat(workspaces): added GQL fitlering capabilities to activeUser workspaces

*  added filtering mechanism for getWorkspaces completed or not completed workspaces
* added filtering mechanism to filter workspaces of active user by string hitting on slug or name
This commit is contained in:
Daniel Gak Anagrov
2025-05-19 16:30:56 +02:00
committed by GitHub
parent 3d4c4395f4
commit fa5f2eb1f5
14 changed files with 264 additions and 71 deletions
@@ -59,7 +59,6 @@ import {
getWorkspaceCollaboratorsFactory,
getWorkspaceFactory,
getWorkspaceRolesFactory,
getWorkspaceRolesForUserFactory,
upsertWorkspaceFactory,
upsertWorkspaceRoleFactory,
getWorkspaceCollaboratorsTotalCountFactory,
@@ -76,7 +75,9 @@ import {
queryWorkspacesFactory,
countWorkspacesFactory,
countWorkspaceRoleWithOptionalProjectRoleFactory,
getPaginatedWorkspaceProjectsFactory
getPaginatedWorkspaceProjectsFactory,
getWorkspaceRolesForUserFactory,
getWorkspacesFactory
} from '@/modules/workspaces/repositories/workspaces'
import {
buildWorkspaceInviteEmailContentsFactory,
@@ -1846,18 +1847,20 @@ export = FF_WORKSPACES_MODULE_ENABLED
return await listExpiredSsoSessions({ userId: context.userId })
},
workspaces: async (_parent, _args, context) => {
workspaces: async (_parent, args, context) => {
if (!context.userId) {
throw new WorkspacesNotAuthorizedError()
}
const getWorkspaces = getWorkspacesForUserFactory({
getWorkspace: getWorkspaceFactory({ db }),
getWorkspaces: getWorkspacesFactory({ db }),
getWorkspaceRolesForUser: getWorkspaceRolesForUserFactory({ db })
})
const workspaces = await getWorkspaces({
userId: context.userId
userId: context.userId,
search: args.filter?.search ?? undefined,
completed: args.filter?.completed ?? undefined
})
// TODO: Pagination