chore(workspaces): optimize project roles resolvers

This commit is contained in:
Alessandro Magionami 2024-09-16 17:27:43 +02:00
Родитель 0d9ff2514a
Коммит 9669a94552
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: EC367516F896CBA4
4 изменённых файлов: 15 добавлений и 5 удалений

Просмотреть файл

@ -67,6 +67,7 @@ generates:
SmartTextEditorValue: '@/modules/core/services/richTextEditorService#SmartTextEditorValueSchema'
BlobMetadata: '@/modules/blobstorage/domain/types#BlobStorageItem'
ServerWorkspacesInfo: '@/modules/core/helpers/graphTypes#GraphQLEmptyReturn'
ProjectRole: '@/modules/workspacesCore/helpers/graphTypes#ProjectRoleGraphQLReturn '
modules/cross-server-sync/graph/generated/graphql.ts:
plugins:
- 'typescript'

Просмотреть файл

@ -5,7 +5,7 @@ import { CommentReplyAuthorCollectionGraphQLReturn, CommentGraphQLReturn } from
import { PendingStreamCollaboratorGraphQLReturn } from '@/modules/serverinvites/helpers/graphTypes';
import { FileUploadGraphQLReturn } from '@/modules/fileuploads/helpers/types';
import { AutomateFunctionGraphQLReturn, AutomateFunctionReleaseGraphQLReturn, AutomationGraphQLReturn, AutomationRevisionGraphQLReturn, AutomationRevisionFunctionGraphQLReturn, AutomateRunGraphQLReturn, AutomationRunTriggerGraphQLReturn, AutomationRevisionTriggerDefinitionGraphQLReturn, AutomateFunctionRunGraphQLReturn, TriggeredAutomationsStatusGraphQLReturn, ProjectAutomationMutationsGraphQLReturn, ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn, ProjectAutomationsUpdatedMessageGraphQLReturn, UserAutomateInfoGraphQLReturn } from '@/modules/automate/helpers/graphTypes';
import { WorkspaceGraphQLReturn, WorkspaceBillingGraphQLReturn, WorkspaceMutationsGraphQLReturn, WorkspaceInviteMutationsGraphQLReturn, WorkspaceProjectMutationsGraphQLReturn, PendingWorkspaceCollaboratorGraphQLReturn, WorkspaceCollaboratorGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes';
import { WorkspaceGraphQLReturn, WorkspaceBillingGraphQLReturn, WorkspaceMutationsGraphQLReturn, WorkspaceInviteMutationsGraphQLReturn, WorkspaceProjectMutationsGraphQLReturn, PendingWorkspaceCollaboratorGraphQLReturn, WorkspaceCollaboratorGraphQLReturn, ProjectRoleGraphQLReturn } from '@/modules/workspacesCore/helpers/graphTypes';
import { WebhookGraphQLReturn } from '@/modules/webhooks/helpers/graphTypes';
import { SmartTextEditorValueSchema } from '@/modules/core/services/richTextEditorService';
import { BlobStorageItem } from '@/modules/blobstorage/domain/types';
@ -4403,7 +4403,7 @@ export type ResolversTypes = {
ProjectPendingModelsUpdatedMessageType: ProjectPendingModelsUpdatedMessageType;
ProjectPendingVersionsUpdatedMessage: ResolverTypeWrapper<Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversTypes['FileUpload'] }>;
ProjectPendingVersionsUpdatedMessageType: ProjectPendingVersionsUpdatedMessageType;
ProjectRole: ResolverTypeWrapper<Omit<ProjectRole, 'project'> & { project: ResolversTypes['Project'] }>;
ProjectRole: ResolverTypeWrapper<ProjectRoleGraphQLReturn >;
ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput;
ProjectTriggeredAutomationsStatusUpdatedMessage: ResolverTypeWrapper<ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn>;
ProjectTriggeredAutomationsStatusUpdatedMessageType: ProjectTriggeredAutomationsStatusUpdatedMessageType;
@ -4654,7 +4654,7 @@ export type ResolversParentTypes = {
ProjectMutations: MutationsObjectGraphQLReturn;
ProjectPendingModelsUpdatedMessage: Omit<ProjectPendingModelsUpdatedMessage, 'model'> & { model: ResolversParentTypes['FileUpload'] };
ProjectPendingVersionsUpdatedMessage: Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversParentTypes['FileUpload'] };
ProjectRole: Omit<ProjectRole, 'project'> & { project: ResolversParentTypes['Project'] };
ProjectRole: ProjectRoleGraphQLReturn ;
ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput;
ProjectTriggeredAutomationsStatusUpdatedMessage: ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn;
ProjectUpdateInput: ProjectUpdateInput;

Просмотреть файл

@ -740,19 +740,24 @@ export = FF_WORKSPACES_MODULE_ENABLED
role: async (parent) => {
return parent.workspaceRole
},
projectRoles: async (parent, _args, ctx) => {
projectRoles: async (parent) => {
const projectRoles = await getRolesByUserIdFactory({ db })({
userId: parent.id,
workspaceId: parent.workspaceId
})
return await Promise.all(
projectRoles.map(({ role, resourceId }) => ({
project: ctx.loaders.streams.getStream.load(resourceId),
projectId: resourceId,
role
}))
)
}
},
ProjectRole: {
project: async (parent, _args, ctx) => {
return await ctx.loaders.streams.getStream.load(parent.projectId)
}
},
PendingWorkspaceCollaborator: {
workspaceName: async (parent, _args, ctx) => {
const workspace = await ctx.loaders.workspaces!.getWorkspace.load(

Просмотреть файл

@ -9,6 +9,10 @@ export type WorkspaceBillingGraphQLReturn = { parent: Workspace }
export type WorkspaceMutationsGraphQLReturn = MutationsObjectGraphQLReturn
export type WorkspaceInviteMutationsGraphQLReturn = MutationsObjectGraphQLReturn
export type WorkspaceProjectMutationsGraphQLReturn = MutationsObjectGraphQLReturn
export type ProjectRoleGraphQLReturn = {
role: string
projectId: string
}
export type PendingWorkspaceCollaboratorGraphQLReturn = {
id: string