def raise_exception(self, result, status_code): ''' Map the exception code to an exception class and raise it If result.exception and result.detail are available use that Otherwise just raise a generic error ''' from stream.exceptions import get_exception_dict exception_class = exceptions.StreamApiException if result is not None: error_message = result['detail'] exception_fields = result.get('exception_fields') if exception_fields is not None: errors = [] for field, errors in exception_fields.items(): errors.append('Field "%s" errors: %s' % (field, repr(errors))) error_message = '\n'.join(errors) error_code = result.get('code') exception_dict = get_exception_dict() exception_class = exception_dict.get( error_code, exceptions.StreamApiException) else: error_message = 'GetStreamAPI%s' % status_code exception = exception_class(error_message, status_code=status_code) raise exception
def raise_exception(self, result, status_code): """ Map the exception code to an exception class and raise it If result.exception and result.detail are available use that Otherwise just raise a generic error """ from stream.exceptions import get_exception_dict exception_class = exceptions.StreamApiException if result is not None: error_message = result["detail"] exception_fields = result.get("exception_fields") if exception_fields is not None: errors = [] for field, errors in exception_fields.items(): errors.append('Field "%s" errors: %s' % (field, repr(errors))) error_message = "\n".join(errors) error_code = result.get("code") exception_dict = get_exception_dict() exception_class = exception_dict.get(error_code, exceptions.StreamApiException) else: error_message = "GetStreamAPI%s" % status_code exception = exception_class(error_message, status_code=status_code) raise exception
def raise_exception(self, result, status_code): ''' Map the exception code to an exception class and raise it ''' from stream.exceptions import get_exception_dict error_message = result['detail'] exception_fields = result.get('exception_fields') if exception_fields is not None: errors = [] for field, errors in exception_fields.items(): errors.append('Field "%s" errors: %s' % (field, repr(errors))) error_message = '\n'.join(errors) error_code = result.get('code') exception_dict = get_exception_dict() exception_class = exception_dict.get( error_code, exceptions.StreamApiException) exception = exception_class(error_message, status_code=status_code) raise exception
def raise_exception(self, result, status_code): """ Map the exception code to an exception class and raise it If result.exception and result.detail are available use that Otherwise just raise a generic error """ from stream.exceptions import get_exception_dict exception_class = exceptions.StreamApiException def errors_from_fields(exception_fields): result = [] if not isinstance(exception_fields, dict): return exception_fields for field, errors in exception_fields.items(): result.append('Field "%s" errors: %s' % (field, repr(errors))) return result if result is not None: error_message = result["detail"] exception_fields = result.get("exception_fields") if exception_fields is not None: if isinstance(exception_fields, list): errors = [ errors_from_fields(exception_dict) for exception_dict in exception_fields ] errors = [item for sublist in errors for item in sublist] else: errors = errors_from_fields(exception_fields) error_message = "\n".join(errors) error_code = result.get("code") exception_dict = get_exception_dict() exception_class = exception_dict.get( error_code, exceptions.StreamApiException ) else: error_message = "GetStreamAPI%s" % status_code exception = exception_class(error_message, status_code=status_code) raise exception