From 67f4cb67c8fcedc7706e57f4df8239cec7a4b5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Sch=C3=A4fer?= <felix@thegcat.net> Date: Sat, 5 Feb 2022 00:34:33 +0100 Subject: [PATCH] Gracefully handle known error responses #4 --- pretix_matrix_inviter/tasks.py | 39 ++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/pretix_matrix_inviter/tasks.py b/pretix_matrix_inviter/tasks.py index ce19901..1a3f737 100644 --- a/pretix_matrix_inviter/tasks.py +++ b/pretix_matrix_inviter/tasks.py @@ -49,23 +49,36 @@ def matrix_inviter_invite( ) r.raise_for_status() except (requests.ConnectionError, requests.HTTPError) as e: - try: - self.retry() - except MaxRetriesExceededError: + if r.status_code in (400, 403): + response_dump = r.json() order.log_action( "pretix_matrix_inviter.error", data={ "matrix_id": user_matrix_id, "matrix_room": room_matrix_id, - "error": "HTTP Code {}".format(r.status_code), + "error": "HTTP Code {} ({})".format( + r.status_code, response_dump["error"] + ), }, ) - raise e - - order.log_action( - "pretix_matrix_inviter.invite_sent", - data={ - "matrix_id": user_matrix_id, - "matrix_room": room_matrix_id, - }, - ) + else: + try: + self.retry() + except MaxRetriesExceededError: + order.log_action( + "pretix_matrix_inviter.error", + data={ + "matrix_id": user_matrix_id, + "matrix_room": room_matrix_id, + "error": "HTTP Code {}".format(r.status_code), + }, + ) + raise e + else: + order.log_action( + "pretix_matrix_inviter.invite_sent", + data={ + "matrix_id": user_matrix_id, + "matrix_room": room_matrix_id, + }, + ) -- GitLab