:param manager: Manager to handle sessions and transactions
    :param handle_id: Unique id
    :param legacy: Backwards compatibility

    :type manager: norduniclient.contextmanager.Neo4jDBSessionManager
    :type handle_id: str|unicode
    :type legacy: Boolean

    :rtype: dict|neo4j.v1.types.Node

def get_node(manager, handle_id, legacy=True):
    """
    :param manager: Manager to handle sessions and transactions
    :param handle_id: Unique id
    :param legacy: Backwards compatibility

    :type manager: norduniclient.contextmanager.Neo4jDBSessionManager
    :type handle_id: str|unicode
    :type legacy: Boolean

    :rtype: dict|neo4j.v1.types.Node
    """
    q = 'MATCH (n:Node { handle_id: {handle_id} }) RETURN n'

    with manager.session as s:
        result = s.run(q, {'handle_id': handle_id}).single()
        if result:
            if legacy:
                return result['n'].properties
            return result['n']
    raise exceptions.NodeNotFound(manager, handle_id)