Source code for graphspace_python.api.errors

[docs]class GraphSpaceError(Exception): """GraphSpaceError class. Base error class for the GraphSpace HTTP errors. Attributes: status_code (int): HTTP error status code. reason (str): Reason of HTTP error. error_code (int): Error code received from GraphSpace. error_message (str): Error message received from GraphSpace. """ def __init__(self, status_code, reason, response): """Construct a new 'GraphSpaceError' object. Args: status_code (int): Status Code of the HTTP error. reason (str): Reason of HTTP error. response (dict): Response dict having error details from the API call. """ self.status_code = status_code self.reason = reason self.error_code = response['error_code'] self.error_message = response['error_message'] def __str__(self): """Prints the error message when exception occurs. """ return self.error_message
[docs]class UserAlreadyExists(GraphSpaceError): pass
[docs]class BadRequest(GraphSpaceError): pass
[docs]class UserNotAuthorised(GraphSpaceError): pass
[docs]class UserNotAuthenticated(GraphSpaceError): pass
[docs]class LayoutNameAlreadyExists(GraphSpaceError): pass
[docs]class ErrorHandler(object): """ErrorHandler class. Exception handling class for GraphSpace API's HTTP errors. """ _error_map = { 1000: UserAlreadyExists, 1002: BadRequest, 1004: UserNotAuthorised, 1005: UserNotAuthenticated, 1014: LayoutNameAlreadyExists }
[docs] def raise_error(self, error, response): """Raises exception based on the 'error_code' received in response when any HTTP error occurs in API call. Args: error (object): HTTPError object. response (dict): Response dict having error details from the API call. Raises: GraphSpaceError: If an error response is received from the API call, it raises any one of the GraphSpaceError depending upon the error code. """ try: raise self._error_map[response['error_code']]( error.response.status_code, error.response.reason, response ) except KeyError: raise error