From c532829c357f0e2ce7ba1d898e33b99a633c66e2 Mon Sep 17 00:00:00 2001 From: Lauryn Menard Date: Mon, 31 Jan 2022 18:57:48 +0100 Subject: [PATCH] backend: Change `do_report_error` return value. As a preparatory step to refactoring json_success to accept request as a parameter, change `do_report_error`, which is called from the events queue for "error_reports", to return None instead of json_success. Adds an assertion error to `ErrorReporter` queue processor and removes `JsonableError` from `do_report_error`. It is likely that `do_error_report` was moved from a view in a previous refactor, but was not updated to no longer return an HttpReponse. --- zerver/lib/error_notify.py | 9 +-------- zerver/worker/queue_processors.py | 3 +++ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/zerver/lib/error_notify.py b/zerver/lib/error_notify.py index cf60084c3f..c647c462d7 100644 --- a/zerver/lib/error_notify.py +++ b/zerver/lib/error_notify.py @@ -4,13 +4,9 @@ from typing import Any, Dict from django.conf import settings from django.core.mail import mail_admins -from django.http import HttpResponse -from django.utils.translation import gettext as _ from zerver.filters import clean_data_from_query_parameters from zerver.lib.actions import internal_send_stream_message -from zerver.lib.exceptions import JsonableError -from zerver.lib.response import json_success from zerver.models import get_realm, get_stream, get_system_bot @@ -194,11 +190,8 @@ Error generated by {user_info} mail_admins(format_email_subject(email_subject), message, fail_silently=True) -def do_report_error(type: str, report: Dict[str, Any]) -> HttpResponse: +def do_report_error(type: str, report: Dict[str, Any]) -> None: if type == "browser": notify_browser_error(report) elif type == "server": notify_server_error(report) - else: - raise JsonableError(_("Invalid type parameter")) - return json_success() diff --git a/zerver/worker/queue_processors.py b/zerver/worker/queue_processors.py index 14881acf71..010287ce76 100644 --- a/zerver/worker/queue_processors.py +++ b/zerver/worker/queue_processors.py @@ -797,6 +797,9 @@ class PushNotificationsWorker(QueueProcessingWorker): @assign_queue("error_reports") class ErrorReporter(QueueProcessingWorker): def consume(self, event: Mapping[str, Any]) -> None: + error_types = ["browser", "server"] + assert event["type"] in error_types + logging.info( "Processing traceback with type %s for %s", event["type"], event.get("user_email") )