Add child folders support for Microsoft (#15114)

This commit is contained in:
neo773
2025-10-17 02:16:58 +05:30
committed by GitHub
parent 4e3c37809c
commit 709bdc74c3
2 changed files with 14 additions and 0 deletions
@@ -1,6 +1,7 @@
import { type MessageChannel } from '@/accounts/types/MessageChannel';
import { type MessageFolder } from '@/accounts/types/MessageFolder';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useGenerateDepthRecordGqlFieldsFromObject } from '@/object-record/graphql/record-gql-fields/hooks/useGenerateDepthRecordGqlFieldsFromObject';
import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord';
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
import { SettingsMessageFoldersEmptyStateCard } from '@/settings/accounts/components/message-folders/SettingsMessageFoldersEmptyStateCard';
@@ -66,9 +67,16 @@ export const SettingsAccountsMessageFoldersCard = () => {
objectNameSingular: CoreObjectNameSingular.MessageFolder,
});
const { recordGqlFields } = useGenerateDepthRecordGqlFieldsFromObject({
objectNameSingular: CoreObjectNameSingular.MessageChannel,
depth: 1,
shouldOnlyLoadRelationIdentifiers: false,
});
const { record: messageChannel } = useFindOneRecord<MessageChannel>({
objectNameSingular: CoreObjectNameSingular.MessageChannel,
objectRecordId: settingsAccountsSelectedMessageChannel?.id,
recordGqlFields,
});
const { messageFolders = [] } = messageChannel ?? {};
@@ -14,8 +14,12 @@ import { getStandardFolderByRegex } from 'src/modules/messaging/message-import-m
type MicrosoftGraphFolder = {
id: string;
displayName: string;
childFolderCount?: number;
parentFolderId?: string;
};
const MESSAGING_MICROSOFT_MAIL_FOLDERS_LIST_MAX_RESULT = 999;
@Injectable()
export class MicrosoftGetAllFoldersService implements MessageFolderDriver {
private readonly logger = new Logger(MicrosoftGetAllFoldersService.name);
@@ -37,6 +41,8 @@ export class MicrosoftGetAllFoldersService implements MessageFolderDriver {
const response = await microsoftClient
.api('/me/mailFolders')
.version('beta')
.top(MESSAGING_MICROSOFT_MAIL_FOLDERS_LIST_MAX_RESULT)
.get()
.catch((error) => {
this.logger.error(