fix: SendEmail workflow ConnectedAccount query (#19484)

This commit is contained in:
neo773
2026-04-09 19:28:12 +05:30
committed by GitHub
parent d495a9f412
commit 1e908e5f0f
10 changed files with 636 additions and 309 deletions
@@ -0,0 +1,32 @@
import { Field, ObjectType, OmitType } from '@nestjs/graphql';
import { IsOptional } from 'class-validator';
import { ConnectionParametersDTO } from 'src/engine/core-modules/imap-smtp-caldav-connection/dtos/imap-smtp-caldav-connection.dto';
import { ConnectedAccountDTO } from 'src/engine/metadata-modules/connected-account/dtos/connected-account.dto';
@ObjectType('PublicConnectionParametersOutput')
class PublicConnectionParametersDTO extends OmitType(ConnectionParametersDTO, [
'password',
] as const) {}
@ObjectType('PublicImapSmtpCaldavConnectionParameters')
class PublicImapSmtpCaldavConnectionParametersDTO {
@Field(() => PublicConnectionParametersDTO, { nullable: true })
IMAP?: PublicConnectionParametersDTO;
@Field(() => PublicConnectionParametersDTO, { nullable: true })
SMTP?: PublicConnectionParametersDTO;
@Field(() => PublicConnectionParametersDTO, { nullable: true })
CALDAV?: PublicConnectionParametersDTO;
}
@ObjectType('ConnectedAccountPublicDTO')
export class ConnectedAccountPublicDTO extends OmitType(ConnectedAccountDTO, [
'connectionParameters',
] as const) {
@IsOptional()
@Field(() => PublicImapSmtpCaldavConnectionParametersDTO, { nullable: true })
connectionParameters: PublicImapSmtpCaldavConnectionParametersDTO | null;
}
@@ -13,6 +13,7 @@ import { SettingsPermissionGuard } from 'src/engine/guards/settings-permission.g
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
import { ConnectedAccountMetadataService } from 'src/engine/metadata-modules/connected-account/connected-account-metadata.service';
import { ConnectedAccountDTO } from 'src/engine/metadata-modules/connected-account/dtos/connected-account.dto';
import { ConnectedAccountPublicDTO } from 'src/engine/metadata-modules/connected-account/dtos/connected-account-public.dto';
import { ConnectedAccountGraphqlApiExceptionInterceptor } from 'src/engine/metadata-modules/connected-account/interceptors/connected-account-graphql-api-exception.interceptor';
@UseGuards(WorkspaceAuthGuard)
@@ -35,6 +36,18 @@ export class ConnectedAccountResolver {
});
}
@Query(() => ConnectedAccountPublicDTO, { nullable: true })
@UseGuards(NoPermissionGuard)
async connectedAccountById(
@Args('id', { type: () => UUIDScalarType }) id: string,
@AuthWorkspace() workspace: WorkspaceEntity,
): Promise<ConnectedAccountPublicDTO | null> {
return this.connectedAccountMetadataService.findById({
id,
workspaceId: workspace.id,
});
}
@Query(() => [ConnectedAccountDTO])
@UseGuards(SettingsPermissionGuard(PermissionFlagType.CONNECTED_ACCOUNTS))
async connectedAccounts(