python: Migrate most json_error => JsonableError.

JsonableError has two major benefits over json_error:
* It can be raised from anywhere in the codebase, rather than
  being a return value, which is much more convenient for refactoring,
  as one doesn't potentially need to change error handling style when
  extracting a bit of view code to a function.
* It is guaranteed to contain the `code` property, which is helpful
  for API consistency.

Various stragglers are not updated because JsonableError requires
subclassing in order to specify custom data or HTTP status codes.
This commit is contained in:
PIG208
2021-07-01 00:35:50 +08:00
committed by Tim Abbott
parent 322a9b0346
commit dcbb2a78ca
50 changed files with 242 additions and 204 deletions

View File

@@ -14,7 +14,7 @@ from zerver.lib.actions import (
)
from zerver.lib.exceptions import JsonableError
from zerver.lib.request import REQ, has_request_variables
from zerver.lib.response import json_error, json_success
from zerver.lib.response import json_success
from zerver.lib.user_groups import (
access_user_group_by_id,
get_memberships_of_users,
@@ -58,7 +58,7 @@ def edit_user_group(
description: str = REQ(default=""),
) -> HttpResponse:
if not (name or description):
return json_error(_("No new data supplied"))
raise JsonableError(_("No new data supplied"))
user_group = access_user_group_by_id(user_group_id, user_profile)
@@ -93,7 +93,7 @@ def update_user_group_backend(
add: Sequence[int] = REQ(json_validator=check_list(check_int), default=[]),
) -> HttpResponse:
if not add and not delete:
return json_error(_('Nothing to do. Specify at least one of "add" or "delete".'))
raise JsonableError(_('Nothing to do. Specify at least one of "add" or "delete".'))
thunks = [
lambda: add_members_to_group_backend(