Ejemplo n.º 1
0
def _process_entity(request, name, param_parser, key_translations):
    """Procesa una request GET o POST para consultar datos de una entidad.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.
        name (str): Nombre de la entidad.
        param_parser (ParameterSet): Objeto utilizado para parsear los
            parámetros.
        key_translations (dict): Traducciones de keys a utilizar para convertir
            los diccionarios de parámetros del usuario a una lista de
            diccionarios representando las queries a Elasticsearch.

    Returns:
        flask.Response: respuesta HTTP

    """
    try:
        if request.method == 'GET':
            return _process_entity_single(request, name, param_parser,
                                          key_translations)

        return _process_entity_bulk(request, name, param_parser,
                                    key_translations)
    except data.DataConnectionException:
        logger.exception(
            'Excepción en manejo de consulta para recurso: {}'.format(name))
        return formatter.create_internal_error_response()
Ejemplo n.º 2
0
def process_entity(request, name, param_parser, key_translations, index=None):
    """Procesa una request GET o POST para consultar datos de una entidad.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.
        name (str): Nombre de la entidad.
        param_parser (ParameterSet): Objeto utilizado para parsear los
            parámetros.
        key_translations (dict): Traducciones de keys a utilizar para convertir
            los diccionarios de parámetros del usuario a una lista de
            diccionarios representando las queries a Elasticsearch.
        index (str): Nombre del índice a consultar. Por defecto, se utiliza
            el nombre de la entidad.

    Returns:
        flask.Response: respuesta HTTP
    """
    if not index:
        index = name

    try:
        if request.method == 'GET':
            return process_entity_single(request, name, param_parser,
                                         key_translations, index)
        else:
            return process_entity_bulk(request, name, param_parser,
                                       key_translations, index)
    except data.DataConnectionException:
        return formatter.create_internal_error_response()
Ejemplo n.º 3
0
def process_street(request):
    """Procesa una request GET o POST para consultar datos de calles.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.

    Returns:
        flask.Response: respuesta HTTP
    """
    try:
        if request.method == 'GET':
            return process_street_single(request)
        else:
            return process_street_bulk(request)
    except data.DataConnectionException:
        return formatter.create_internal_error_response()
Ejemplo n.º 4
0
def process_address(request):
    """Procesa una request GET o POST para normalizar lote de direcciones.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.

    Returns:
        flask.Response: respuesta HTTP

    """
    try:
        if request.method == 'GET':
            return process_address_single(request)
        else:
            return process_address_bulk(request)
    except data.DataConnectionException:
        return formatter.create_internal_error_response()
Ejemplo n.º 5
0
def process_place(request):
    """Procesa una request GET o POST para obtener entidades en una o varias
    ubicaciones.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.

    Returns:
        flask.Response: respuesta HTTP

    """
    try:
        if request.method == 'GET':
            return process_place_single(request)
        else:
            return process_place_bulk(request)
    except data.DataConnectionException:
        return formatter.create_internal_error_response()
Ejemplo n.º 6
0
def process_location(request):
    """Procesa una request GET o POST para obtener entidades en una o varias
    ubicaciones.
    En caso de ocurrir un error de parseo, se retorna una respuesta HTTP 400.
    En caso de ocurrir un error interno, se retorna una respuesta HTTP 500.

    Args:
        request (flask.Request): Request GET o POST de flask.

    Returns:
        flask.Response: respuesta HTTP

    """
    try:
        if request.method == 'GET':
            return _process_location_single(request)

        return _process_location_bulk(request)
    except data.DataConnectionException:
        logger.exception(
            'Excepción en manejo de consulta para recurso: ubicacion')
        return formatter.create_internal_error_response()