async def _process_folder_and_contents(
        self, client: httpx.AsyncClient, folder_path: str, folder_breadcrumbs: List[Breadcrumb]
    ) -> AsyncGenerator[ChunkEntity, None]:
        """Process a folder recursively, yielding files and subfolders.

        Args:
            client: The HTTPX client for making requests
            folder_path: The path of the folder to process
            folder_breadcrumbs: List of breadcrumbs for navigating to this folder

        Yields:
            File entities for the current folder
            Folder entities for subfolders, followed by their contents
        """
        # First, yield all file entities in this folder
        async for file_entity in self._generate_file_entities(
            client, folder_breadcrumbs, folder_path
        ):
            yield file_entity

        # Then find and process all subfolders
        url = "https://api.dropboxapi.com/2/files/list_folder"
        continue_url = "https://api.dropboxapi.com/2/files/list_folder/continue"

        data = {
            "path": folder_path,
            "recursive": False,
            "include_deleted": False,
            "include_has_explicit_shared_members": True,
            "include_mounted_folders": True,
            "include_non_downloadable_files": True,
        }

        try:
            # Find all subfolders in the current folder
            async for entry in self._get_paginated_entries(client, url, data, continue_url):
                if entry.get(".tag") == "folder":
                    # Get account breadcrumb (always first in the list)
                    account_breadcrumb = folder_breadcrumbs[0] if folder_breadcrumbs else None

                    # Create folder entity
                    folder_entity, subfolder_path = self._create_folder_entity(
                        entry, account_breadcrumb
                    )
                    yield folder_entity

                    # Create new breadcrumb for this folder
                    folder_breadcrumb = Breadcrumb(
                        entity_id=folder_entity.folder_id,
                        name=folder_entity.name,
                        type="folder",
                    )
                    # Build complete breadcrumb path to this folder
                    new_breadcrumbs = folder_breadcrumbs + [folder_breadcrumb]

                    # Recursively process this subfolder
                    async for entity in self._process_folder_and_contents(
                        client, subfolder_path, new_breadcrumbs
                    ):
                        yield entity

        except Exception as e:
            logger.error(f"Error processing folder {folder_path}: {str(e)}")
            raise
Process a folder recursively, yielding files and subfolders.

        Args:
            client: The HTTPX client for making requests
            folder_path: The path of the folder to process
            folder_breadcrumbs: List of breadcrumbs for navigating to this folder

        Yields:
            File entities for the current folder
            Folder entities for subfolders, followed by their contents
        
backend/airweave/platform/sources/dropbox.py