async def _get_destinations_and_destination_connections(
        self, db: AsyncSession, sync: schemas.Sync, current_user: schemas.User
    ) -> Tuple[List[schemas.Destination], List[schemas.Connection]]:
        """Get or create destinations and destination connections.

        Args:
        ----
            db (AsyncSession): The database session.
            sync (schemas.Sync): The sync to get the destinations and destination connections for.
            current_user (schemas.User): The current user.

        Returns:
        -------
            Tuple[List[schemas.Destination], List[schemas.Connection]]: The destinations and
                destination connections.

        Raises:
        ------
            HTTPException: If a destination or destination connection is not found.
        """
        # Initialize lists
        destinations = []
        destination_connections = []

        # Get destinations and destination connections
        if sync.destination_connection_ids:
            for destination_connection_id in sync.destination_connection_ids:
                destination_connection = await crud.connection.get(
                    db, id=destination_connection_id, current_user=current_user
                )
                if not destination_connection:
                    raise HTTPException(status_code=404, detail="Destination connection not found")
                destination_connections.append(destination_connection)

                destination = await crud.destination.get_by_short_name(
                    db, short_name=destination_connection.short_name
                )
                if not destination:
                    raise HTTPException(status_code=404, detail="Destination not found")
                destinations.append(destination)
        return destinations, destination_connections
Get or create destinations and destination connections.

        Args:
        ----
            db (AsyncSession): The database session.
            sync (schemas.Sync): The sync to get the destinations and destination connections for.
            current_user (schemas.User): The current user.

        Returns:
        -------
            Tuple[List[schemas.Destination], List[schemas.Connection]]: The destinations and
                destination connections.

        Raises:
        ------
            HTTPException: If a destination or destination connection is not found.
        
backend/airweave/core/dag_service.py