diff --git a/elementary/messages/messaging_integrations/teams_webhook.py b/elementary/messages/messaging_integrations/teams_webhook.py index c2d87445d..30b6d81b1 100644 --- a/elementary/messages/messaging_integrations/teams_webhook.py +++ b/elementary/messages/messaging_integrations/teams_webhook.py @@ -27,6 +27,15 @@ ONE_SECOND = 1 +class TeamsWebhookHttpError(MessagingIntegrationError): + def __init__(self, response: requests.Response): + self.status_code = response.status_code + self.response = response + super().__init__( + f"Failed to send message to Teams webhook: {response.status_code}" + ) + + def send_adaptive_card(webhook_url: str, card: dict) -> requests.Response: payload = { "type": "message", @@ -88,6 +97,8 @@ def send_message( timestamp=datetime.utcnow(), message_format="adaptive_cards", ) + except requests.HTTPError as e: + raise TeamsWebhookHttpError(e.response) from e except requests.RequestException as e: raise MessagingIntegrationError( f"An error occurred while posting message to Teams webhook: {str(e)}"