Ports the gooyal notifications client (as already used by advertising) and wires it into the previously-empty PushPublisher: on each message send, the other conversation participant(s) get a push notification with the sender's name and a message preview. Failures are swallowed per-recipient so a down notifications service degrades silently rather than breaking message sending. Requires NOTIFICATIONS_BASE_PUBLIC_URL and the notifications.application.push:send OAuth2 scope to be configured before it will actually deliver. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
16 lines
546 B
Python
16 lines
546 B
Python
"""Contains shared errors types that can be raised from API functions"""
|
|
|
|
|
|
class UnexpectedStatus(Exception):
|
|
"""Raised by api functions when the response status an undocumented status and Client.raise_on_unexpected_status is True"""
|
|
|
|
def __init__(self, status_code: int, content: bytes):
|
|
self.status_code = status_code
|
|
self.content = content
|
|
|
|
super().__init__(
|
|
f"Unexpected status code: {status_code}\n\nResponse content:\n{content.decode(errors='ignore')}"
|
|
)
|
|
|
|
|
|
__all__ = ["UnexpectedStatus"]
|