diff options
| author | rr- | 2016-09-10 10:37:28 +0200 |
|---|---|---|
| committer | rr- | 2016-09-10 11:36:01 +0200 |
| commit | 16d04adde0de461cd992f63440a84c9ea66ee106 (patch) | |
| tree | 68a09a36be6fe703ac2de96bb96750a35e80c163 /server | |
| parent | 8674c8b50e9988162aeeb57df23ef334f2701e93 (diff) | |
server/errors: add and document error codes
Diffstat (limited to 'server')
| -rw-r--r-- | server/szurubooru/facade.py | 7 | ||||
| -rw-r--r-- | server/szurubooru/func/versions.py | 2 | ||||
| -rw-r--r-- | server/szurubooru/rest/app.py | 1 | ||||
| -rw-r--r-- | server/szurubooru/rest/errors.py | 7 |
4 files changed, 14 insertions, 3 deletions
diff --git a/server/szurubooru/facade.py b/server/szurubooru/facade.py index cead9a2..1d26aad 100644 --- a/server/szurubooru/facade.py +++ b/server/szurubooru/facade.py @@ -11,6 +11,7 @@ from szurubooru import api, middleware def _map_error(ex, target_class, title): return target_class( + name=type(ex).__name__, title=title, description=str(ex), extra_fields=getattr(ex, 'extra_fields', {})) @@ -42,7 +43,11 @@ def _on_processing_error(ex): def _on_stale_data_error(_ex): raise rest.errors.HttpConflict( - 'Someone else modified this in the meantime. Please try again.') + name='IntegrityError', + title='Integrity violation', + description=( + 'Someone else modified this in the meantime. ' + 'Please try again.')) def validate_config(): diff --git a/server/szurubooru/func/versions.py b/server/szurubooru/func/versions.py index d38130a..ee84407 100644 --- a/server/szurubooru/func/versions.py +++ b/server/szurubooru/func/versions.py @@ -5,7 +5,7 @@ def verify_version(entity, context, field_name='version'): actual_version = context.get_param_as_int(field_name, required=True) expected_version = entity.version if actual_version != expected_version: - raise errors.InvalidParameterError( + raise errors.IntegrityError( 'Someone else modified this in the meantime. ' + 'Please try again.') diff --git a/server/szurubooru/rest/app.py b/server/szurubooru/rest/app.py index da8f2dd..2c21916 100644 --- a/server/szurubooru/rest/app.py +++ b/server/szurubooru/rest/app.py @@ -103,6 +103,7 @@ def application(env, start_response): '%d %s' % (ex.code, ex.reason), [('content-type', 'application/json')]) blob = { + 'name': ex.name, 'title': ex.title, 'description': ex.description, } diff --git a/server/szurubooru/rest/errors.py b/server/szurubooru/rest/errors.py index 0189147..3c40b4c 100644 --- a/server/szurubooru/rest/errors.py +++ b/server/szurubooru/rest/errors.py @@ -5,10 +5,15 @@ class BaseHttpError(RuntimeError): code = None reason = None - def __init__(self, description, title=None, extra_fields=None): + def __init__(self, name, description, title=None, extra_fields=None): super().__init__() + # error name for programmers + self.name = name + # error description for humans self.description = description + # short title for humans self.title = title or self.reason + # additional fields for programmers self.extra_fields = extra_fields |