:param manager: Neo4jDBSessionManager
    :param relationship_id: Internal Neo4j id
    :param legacy: Backwards compatibility

    :type relationship_id: int
    :type legacy: bool

    :rtype: dictionary

def get_relationship_bundle(manager, relationship_id=None, legacy=True):
    """
    :param manager: Neo4jDBSessionManager
    :param relationship_id: Internal Neo4j id
    :param legacy: Backwards compatibility

    :type relationship_id: int
    :type legacy: bool

    :rtype: dictionary
    """
    q = """
        MATCH (start)-[r]->(end)
        WHERE ID(r) = {relationship_id}
        RETURN start, r, end
        """

    with manager.session as s:
        record = s.run(q, {'relationship_id': int(relationship_id)}).single()
    if record is None:
        raise exceptions.RelationshipNotFound(manager, int(relationship_id))

    if legacy:
        bundle = {
            'type': record['r'].type,
            'id': int(relationship_id),
            'data': record['r'].properties,
            'start': record['start'].properties['handle_id'],
            'end': record['end'].properties['handle_id'],
        }
    else:
        bundle = {
            'type': record['r'].type,
            'id': int(relationship_id),
            'data': record['r'].properties,
            'start': record['start'],
            'end': record['end'],
        }
    return bundle