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' SmartTextEditorValue: '@/modules/core/services/richTextEditorService#SmartTextEditorValueSchema'
BlobMetadata: '@/modules/blobstorage/domain/types#BlobStorageItem' BlobMetadata: '@/modules/blobstorage/domain/types#BlobStorageItem'
ServerWorkspacesInfo: '@/modules/core/helpers/graphTypes#GraphQLEmptyReturn' ServerWorkspacesInfo: '@/modules/core/helpers/graphTypes#GraphQLEmptyReturn'
ProjectRole: '@/modules/workspacesCore/helpers/graphTypes#ProjectRoleGraphQLReturn '
modules/cross-server-sync/graph/generated/graphql.ts: modules/cross-server-sync/graph/generated/graphql.ts:
plugins: plugins:
- 'typescript' - 'typescript'

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

@ -5,7 +5,7 @@ import { CommentReplyAuthorCollectionGraphQLReturn, CommentGraphQLReturn } from
import { PendingStreamCollaboratorGraphQLReturn } from '@/modules/serverinvites/helpers/graphTypes'; import { PendingStreamCollaboratorGraphQLReturn } from '@/modules/serverinvites/helpers/graphTypes';
import { FileUploadGraphQLReturn } from '@/modules/fileuploads/helpers/types'; 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 { 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 { WebhookGraphQLReturn } from '@/modules/webhooks/helpers/graphTypes';
import { SmartTextEditorValueSchema } from '@/modules/core/services/richTextEditorService'; import { SmartTextEditorValueSchema } from '@/modules/core/services/richTextEditorService';
import { BlobStorageItem } from '@/modules/blobstorage/domain/types'; import { BlobStorageItem } from '@/modules/blobstorage/domain/types';
@ -4403,7 +4403,7 @@ export type ResolversTypes = {
ProjectPendingModelsUpdatedMessageType: ProjectPendingModelsUpdatedMessageType; ProjectPendingModelsUpdatedMessageType: ProjectPendingModelsUpdatedMessageType;
ProjectPendingVersionsUpdatedMessage: ResolverTypeWrapper<Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversTypes['FileUpload'] }>; ProjectPendingVersionsUpdatedMessage: ResolverTypeWrapper<Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversTypes['FileUpload'] }>;
ProjectPendingVersionsUpdatedMessageType: ProjectPendingVersionsUpdatedMessageType; ProjectPendingVersionsUpdatedMessageType: ProjectPendingVersionsUpdatedMessageType;
ProjectRole: ResolverTypeWrapper<Omit<ProjectRole, 'project'> & { project: ResolversTypes['Project'] }>; ProjectRole: ResolverTypeWrapper<ProjectRoleGraphQLReturn >;
ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput; ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput;
ProjectTriggeredAutomationsStatusUpdatedMessage: ResolverTypeWrapper<ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn>; ProjectTriggeredAutomationsStatusUpdatedMessage: ResolverTypeWrapper<ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn>;
ProjectTriggeredAutomationsStatusUpdatedMessageType: ProjectTriggeredAutomationsStatusUpdatedMessageType; ProjectTriggeredAutomationsStatusUpdatedMessageType: ProjectTriggeredAutomationsStatusUpdatedMessageType;
@ -4654,7 +4654,7 @@ export type ResolversParentTypes = {
ProjectMutations: MutationsObjectGraphQLReturn; ProjectMutations: MutationsObjectGraphQLReturn;
ProjectPendingModelsUpdatedMessage: Omit<ProjectPendingModelsUpdatedMessage, 'model'> & { model: ResolversParentTypes['FileUpload'] }; ProjectPendingModelsUpdatedMessage: Omit<ProjectPendingModelsUpdatedMessage, 'model'> & { model: ResolversParentTypes['FileUpload'] };
ProjectPendingVersionsUpdatedMessage: Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversParentTypes['FileUpload'] }; ProjectPendingVersionsUpdatedMessage: Omit<ProjectPendingVersionsUpdatedMessage, 'version'> & { version: ResolversParentTypes['FileUpload'] };
ProjectRole: Omit<ProjectRole, 'project'> & { project: ResolversParentTypes['Project'] }; ProjectRole: ProjectRoleGraphQLReturn ;
ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput; ProjectTestAutomationCreateInput: ProjectTestAutomationCreateInput;
ProjectTriggeredAutomationsStatusUpdatedMessage: ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn; ProjectTriggeredAutomationsStatusUpdatedMessage: ProjectTriggeredAutomationsStatusUpdatedMessageGraphQLReturn;
ProjectUpdateInput: ProjectUpdateInput; ProjectUpdateInput: ProjectUpdateInput;

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

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

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

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