diff options
| author | leonoverweel <l.overweel@gmail.com> | 2017-01-24 12:05:15 +0100 |
|---|---|---|
| committer | leonoverweel <l.overweel@gmail.com> | 2017-01-24 12:05:15 +0100 |
| commit | 86a50a4f6df9ece982743a3b7ca510846d248909 (patch) | |
| tree | 79edc0478908b7fee9e5dca2088e562c7a62038b /opendc/util/exceptions.py | |
Initial commit
Diffstat (limited to 'opendc/util/exceptions.py')
| -rw-r--r-- | opendc/util/exceptions.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/opendc/util/exceptions.py b/opendc/util/exceptions.py new file mode 100644 index 00000000..56a04ab9 --- /dev/null +++ b/opendc/util/exceptions.py @@ -0,0 +1,61 @@ +class RequestInitializationError(Exception): + """Raised when a Request cannot successfully be initialized""" + +class UnimplementedEndpointError(RequestInitializationError): + """Raised when a Request path does not point to a module.""" + +class MissingRequestParameterError(RequestInitializationError): + """Raised when a Request does not contain one or more required parameters.""" + +class UnsupportedMethodError(RequestInitializationError): + """Raised when a Request does not use a supported REST method. + + The method must be in all-caps, supported by REST, and implemented by the module. + """ + +class AuthorizationTokenError(RequestInitializationError): + """Raised when an authorization token is not correctly verified.""" + +class ForeignKeyError(Exception): + """Raised when a foreign key constraint is not met.""" + +class RowNotFoundError(Exception): + """Raised when a database row is not found.""" + + def __init__(self, table_name): + super(RowNotFoundError, self).__init__( + 'Row in `{}` table not found.'.format(table_name) + ) + + self.table_name = table_name + +class ParameterError(Exception): + """Raised when a paramter is either missing or incorrectly typed.""" + +class IncorrectParameterError(ParameterError): + """Raised when a parameter is of the wrong type.""" + + def __init__(self, parameter_name, parameter_location): + super(IncorrectParameterError, self).__init__( + 'Incorrectly typed `{}` {} parameter.'.format( + parameter_name, + parameter_location + ) + ) + + self.parameter_name = parameter_name + self.parameter_location = parameter_location + +class MissingParameterError(ParameterError): + """Raised when a parameter is missing.""" + + def __init__(self, parameter_name, parameter_location): + super(MissingParameterError, self).__init__( + 'Missing required `{}` {} parameter.'.format( + parameter_name, + parameter_location + ) + ) + + self.parameter_name = parameter_name + self.parameter_location = parameter_location |
