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
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)
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
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
def noop_get_func(input_data, service_objects, **kwargs): log.info('### a client has accessed the / endpoint using HTTP GET.') return core.TransformStatus(None)
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)
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.'}))
def decode_application_json(http_request): log.info('### Invoking application/json request decoder.') decoder_output = json.loads(http_request.data.decode()) return decoder_output
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())
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