code: def safe(f):
      
  
      def wraps(self, *args, **kwargs):
          try:
              return f(self, *args, **kwargs)
          except BadRequest as e:
              return self.response_400(message=str(e))
          except Exception as e:
              logging.exception(e)
              return self.response_500(message=get_error_msg())
  
      return functools.update_wrapper(wraps, f)
docs: A decorator that catches uncaught exceptions and
      return the response in JSON format (inspired on Superset code)