From 0513857445d149f344a66bd83fcf6ed40c070e77 Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 27 Feb 2026 13:56:37 +0000 Subject: [PATCH] feat(client): return created events from insert_event(s) The server already returns created events (with assigned IDs) in the response body, but the client was discarding them. Now insert_event returns Optional[Event] and insert_events returns Optional[List[Event]]. This is backward-compatible: callers that ignore the return value still work. The main use case is getting server-assigned event IDs for later update/delete operations. Fixes #77 --- aw_client/client.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/aw_client/client.py b/aw_client/client.py index ae65074..8c06bef 100644 --- a/aw_client/client.py +++ b/aw_client/client.py @@ -177,15 +177,21 @@ def get_events( events = self._get(endpoint, params=params).json() return [Event(**event) for event in events] - def insert_event(self, bucket_id: str, event: Event) -> None: + def insert_event(self, bucket_id: str, event: Event) -> Optional[Event]: endpoint = f"buckets/{bucket_id}/events" data = [event.to_json_dict()] - self._post(endpoint, data) + response = self._post(endpoint, data) + if response.json(): + return Event(**response.json()[0]) + return None - def insert_events(self, bucket_id: str, events: List[Event]) -> None: + def insert_events(self, bucket_id: str, events: List[Event]) -> Optional[List[Event]]: endpoint = f"buckets/{bucket_id}/events" data = [event.to_json_dict() for event in events] - self._post(endpoint, data) + response = self._post(endpoint, data) + if response.json(): + return [Event(**e) for e in response.json()] + return None def delete_event(self, bucket_id: str, event_id: int) -> None: endpoint = f"buckets/{bucket_id}/events/{event_id}"