Beispiel #1
0
def bidding_status():
    try:
        if app.debug:
            # dump request headers for easier debugging
            log.info('### HTTP request headers:')
            log.info(request.headers)

        input_data = {}

        input_data.update(request.args)

        transform_status = xformer.transform('bidding_status',
                                             input_data,
                                             headers=request.headers)

        output_mimetype = xformer.target_mimetype_for_transform(
            'bidding_status')

        if transform_status.ok:
            return Response(transform_status.output_data,
                            status=snap.HTTP_OK,
                            mimetype=output_mimetype)
        return Response(json.dumps(transform_status.user_data),
                        status=transform_status.get_error_code()
                        or snap.HTTP_DEFAULT_ERRORCODE,
                        mimetype=output_mimetype)
    except Exception as err:
        log.error("Exception thrown: ", exc_info=1)
        raise err
Beispiel #2
0
def pubsub_push_func(input_data, service_objects, **kwargs):
    gcloud_svc = service_objects.lookup('gcloud_config')
    if (input_data.get('token', '') !=
            gcloud_svc.config['PUBSUB_VERIFICATION_TOKEN']):
        log.info('"token" argument is missing or incorrect.')
        raise snap.MissingInputFieldException(['request arg "token"'])

    log.info('### inside pubsub message handler.')
    return core.TransformStatus(None)
Beispiel #3
0
def decode_form_urlencoded(http_request):
    log.info('### invoking application/x-www-form-urlencoded request decoder.')
    raw_data = http_request.data.decode()
    fields = raw_data.split('&')    
    data = {}
    for f in fields:
        tokens = f.split('=')
        key = tokens[0]
        value = urllib.parse.unquote(tokens[1])
        data[key] = value
    return data
Beispiel #4
0
def home():
    try:
        if app.debug:
            # dump request headers for easier debugging
            log.info('### HTTP request headers:')
            log.info(request.headers)

        input_data = {}                
        input_data.update(request.args)
        
        transform_status = xformer.transform('home',
                                             core.convert_multidict(input_data),
                                             headers=request.headers)        
        output_mimetype = xformer.target_mimetype_for_transform('home')

        if transform_status.ok:
            return Response(transform_status.output_data, status=snap.HTTP_OK, mimetype=output_mimetype)
        return Response(json.dumps(transform_status.user_data), 
                        status=transform_status.get_error_code() or snap.HTTP_DEFAULT_ERRORCODE, 
                        mimetype=output_mimetype) 
    except Exception as err:
        log.error("Exception thrown: ", exc_info=1)        
        raise err
def decode_application_json(http_request):
    log.info('>>> Invoking custom request decoder.')
    decoder_output = {}
    decoder_output.update(http_request.get_json(silent=True))
    return decoder_output
Beispiel #6
0
def noop_get_func(input_data, service_objects, **kwargs):
    log.info('### a client has accessed the / endpoint using HTTP GET.')
    return core.TransformStatus(None)
Beispiel #7
0
def pubsub_push_alt_func(input_data, service_objects, **kwargs):
    log.info('### inside alternate pubsub message handler.')
    log.info(input_data)
    return core.TransformStatus(None)
Beispiel #8
0
def ping_func(input_data, service_objects, **kwargs):
    log.info('### inside ping endpoint. Application is alive.')
    return core.TransformStatus(
        json.dumps({'message': 'the SNAP application is alive.'}))
Beispiel #9
0
def decode_application_json(http_request):
    log.info('### Invoking application/json request decoder.')
    decoder_output = json.loads(http_request.data.decode())    
    return decoder_output
Beispiel #10
0
def decode_text_plain_utf8(http_request):
    log.info('### Invoking text/plain; charset=UTF-8 request decoder.')
    if not len(http_request.data):
        return {}
    return json.loads(http_request.data.decode())
Beispiel #11
0
def decode_application_json(http_request):
    log.info('>>> Invoking custom request decoder.')
    decoder_output = {'test_json_input_field': 'dummy_value'}
    #decoder_output.update(http_request.get_json())
    return decoder_output