FEAT(notifications): accept optional click_url in push_user
Passes through to the notifications service, which embeds it as the Gotify tap destination when set. Optional — no existing call site changes, most notifications stay non-clickable. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
9f8b723f64
commit
780534a426
1 changed files with 8 additions and 3 deletions
|
|
@ -54,11 +54,12 @@ class _PushBody:
|
||||||
these fields are sent (mirrors the advertising service's client).
|
these fields are sent (mirrors the advertising service's client).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, title: str, message: str, priority: int, extras):
|
def __init__(self, title: str, message: str, priority: int, extras, click_url=None):
|
||||||
self._title = title
|
self._title = title
|
||||||
self._message = message
|
self._message = message
|
||||||
self._priority = priority
|
self._priority = priority
|
||||||
self._extras = extras
|
self._extras = extras
|
||||||
|
self._click_url = click_url
|
||||||
|
|
||||||
def to_dict(self) -> dict:
|
def to_dict(self) -> dict:
|
||||||
return {
|
return {
|
||||||
|
|
@ -66,16 +67,20 @@ class _PushBody:
|
||||||
"message": self._message,
|
"message": self._message,
|
||||||
"priority": self._priority,
|
"priority": self._priority,
|
||||||
"extras": self._extras,
|
"extras": self._extras,
|
||||||
|
"click_url": self._click_url,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def push_user(user_uuid, title: str, message: str, priority: int = 5, extras=None):
|
def push_user(user_uuid, title: str, message: str, priority: int = 5, extras=None, click_url=None):
|
||||||
"""
|
"""
|
||||||
Send a push notification to a single user via the gooyal notifications
|
Send a push notification to a single user via the gooyal notifications
|
||||||
service. Requires the `notifications.application.push:send` scope on
|
service. Requires the `notifications.application.push:send` scope on
|
||||||
this app's OAuth2 client credentials. Raises on failure — callers
|
this app's OAuth2 client credentials. Raises on failure — callers
|
||||||
decide whether a down notifications service should be swallowed.
|
decide whether a down notifications service should be swallowed.
|
||||||
|
|
||||||
|
`click_url` is optional — most notifications aren't clickable. When set,
|
||||||
|
the notifications service embeds it as the tap destination.
|
||||||
"""
|
"""
|
||||||
client = get_client()
|
client = get_client()
|
||||||
body = _PushBody(title=title, message=message, priority=priority, extras=extras)
|
body = _PushBody(title=title, message=message, priority=priority, extras=extras, click_url=click_url)
|
||||||
return push_application_application_create.sync(user_uuid=str(user_uuid), client=client, body=body)
|
return push_application_application_create.sync(user_uuid=str(user_uuid), client=client, body=body)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue