From b39d291c2232be5f085bf2fe71704107879f2c59 Mon Sep 17 00:00:00 2001 From: bardonadam Date: Sat, 7 Feb 2026 09:58:06 +0100 Subject: [PATCH] feat: add short resource methods with compatibility aliases --- README.md | 8 ++++---- activitysmith/client.py | 42 ++++++++++++++++++++++++++++++++++++++--- tests/test_smoke.py | 7 ++++++- 3 files changed, 49 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 61ac9a7..593fdc2 100644 --- a/README.md +++ b/README.md @@ -31,15 +31,15 @@ client = ActivitySmith( ) # Push Notifications -client.notifications.send_push_notification( - push_notification_request={ +client.notifications.send( + { # See PushNotificationRequest for fields } ) # Live Activities -client.live_activities.start_live_activity( - live_activity_start_request={ +client.live_activities.start( + { # See LiveActivityStartRequest for fields } ) diff --git a/activitysmith/client.py b/activitysmith/client.py index e52f41a..05627d7 100644 --- a/activitysmith/client.py +++ b/activitysmith/client.py @@ -1,7 +1,7 @@ from __future__ import annotations from dataclasses import dataclass -from typing import Optional +from typing import Optional, Any from activitysmith_openapi.configuration import Configuration from activitysmith_openapi.api_client import ApiClient @@ -10,6 +10,42 @@ from activitysmith_openapi.api.push_notifications_api import PushNotificationsApi +class NotificationsResource: + def __init__(self, api: PushNotificationsApi) -> None: + self._api = api + + def send(self, request: Any): + return self._api.send_push_notification(push_notification_request=request) + + # Backward-compatible alias. + def send_push_notification(self, push_notification_request: Any): + return self.send(push_notification_request) + + +class LiveActivitiesResource: + def __init__(self, api: LiveActivitiesApi) -> None: + self._api = api + + def start(self, request: Any): + return self._api.start_live_activity(live_activity_start_request=request) + + def update(self, request: Any): + return self._api.update_live_activity(live_activity_update_request=request) + + def end(self, request: Any): + return self._api.end_live_activity(live_activity_end_request=request) + + # Backward-compatible aliases. + def start_live_activity(self, live_activity_start_request: Any): + return self.start(live_activity_start_request) + + def update_live_activity(self, live_activity_update_request: Any): + return self.update(live_activity_update_request) + + def end_live_activity(self, live_activity_end_request: Any): + return self.end(live_activity_end_request) + + @dataclass class ActivitySmith: api_key: str @@ -25,5 +61,5 @@ def __post_init__(self) -> None: api_client = ApiClient(configuration=config) - self.notifications = PushNotificationsApi(api_client) - self.live_activities = LiveActivitiesApi(api_client) \ No newline at end of file + self.notifications = NotificationsResource(PushNotificationsApi(api_client)) + self.live_activities = LiveActivitiesResource(LiveActivitiesApi(api_client)) diff --git a/tests/test_smoke.py b/tests/test_smoke.py index 1b973ea..cf9fb7b 100644 --- a/tests/test_smoke.py +++ b/tests/test_smoke.py @@ -4,4 +4,9 @@ def test_client_constructs(): client = ActivitySmith(api_key=os.getenv("ACTIVITYSMITH_API_KEY", "x")) assert client.notifications is not None - assert client.live_activities is not None \ No newline at end of file + assert client.live_activities is not None + assert hasattr(client.notifications, "send") + assert hasattr(client.notifications, "send_push_notification") + assert hasattr(client.live_activities, "start") + assert hasattr(client.live_activities, "update") + assert hasattr(client.live_activities, "end")