Пример #1
0
 def decorated_service(*args, **kwargs):
     try:
         current_app.logger.info(get_form_from_request(request))
     except OSError as e:  # don't crash if request can't be logged (e.g. [Errno 90] Message too long)
         current_app.logger.info(e)
     response = fn(*args, **kwargs)  # expects flask response object
     if not (
         hasattr(response, "json")
         and hasattr(response, "headers")
         and hasattr(response, "status_code")
     ):
         current_app.logger.warning(
             "Response is not a Flask response object. I did not assign a response type."
         )
         return response
     data = response.json
     headers = dict(
         zip(Headers.keys(response.headers), Headers.values(response.headers))
     )
     status_code = response.status_code
     if "type" in data:
         current_app.logger.warning(
             "Response already contains 'type' key. I did not assign a new response type."
         )
     else:
         data["type"] = response_type
         headers.pop("content-length", None)
         headers.pop("Content-Length", None)
     return data, status_code, headers