@@ -55,7 +55,6 @@ class OverkizClient:
5555 setup : Setup | None
5656 devices : list [Device ]
5757 gateways : list [Gateway ]
58- event_listener_id : str | None
5958 session : ClientSession
6059
6160 _refresh_token : str | None = None
@@ -86,7 +85,6 @@ def __init__(
8685 self .setup : Setup | None = None
8786 self .devices : list [Device ] = []
8887 self .gateways : list [Gateway ] = []
89- self .event_listener_id : str | None = None
9088
9189 async def __aenter__ (self ) -> OverkizClient :
9290 return self
@@ -101,8 +99,8 @@ async def __aexit__(
10199
102100 async def close (self ) -> None :
103101 """Close the session."""
104- if self .event_listener_id :
105- await self .unregister_event_listener ()
102+ if self .server . event_listener_id :
103+ await self .server . unregister_event_listener ()
106104
107105 await self .server .session .close ()
108106
@@ -286,11 +284,7 @@ async def register_event_listener(self) -> str:
286284 timeout : listening sessions are expected to call the /events/{listenerId}/fetch
287285 API on a regular basis.
288286 """
289- response = await self .server .post ("events/register" )
290- listener_id = cast (str , response .get ("id" ))
291- self .event_listener_id = listener_id
292-
293- return listener_id
287+ return await self .server .register_event_listener ()
294288
295289 @backoff .on_exception (backoff .expo , TooManyConcurrentRequestsException , max_tries = 5 )
296290 @backoff .on_exception (
@@ -309,7 +303,9 @@ async def fetch_events(self) -> list[Event]:
309303 Per-session rate-limit : 1 calls per 1 SECONDS period for this particular
310304 operation (polling)
311305 """
312- response = await self .server .post (f"events/{ self .event_listener_id } /fetch" )
306+ response = await self .server .post (
307+ f"events/{ self .server .event_listener_id } /fetch"
308+ )
313309 events = [Event (** e ) for e in humps .decamelize (response )]
314310
315311 return events
@@ -319,8 +315,7 @@ async def unregister_event_listener(self) -> None:
319315 Unregister an event listener.
320316 API response status is always 200, even on unknown listener ids.
321317 """
322- await self .server .post (f"events/{ self .event_listener_id } /unregister" )
323- self .event_listener_id = None
318+ return await self .server .unregister_event_listener ()
324319
325320 @backoff .on_exception (
326321 backoff .expo , NotAuthenticatedException , max_tries = 2 , on_backoff = relogin
0 commit comments