@@ -55,7 +55,6 @@ class OverkizClient:
55
55
setup : Setup | None
56
56
devices : list [Device ]
57
57
gateways : list [Gateway ]
58
- event_listener_id : str | None
59
58
session : ClientSession
60
59
61
60
_refresh_token : str | None = None
@@ -86,7 +85,6 @@ def __init__(
86
85
self .setup : Setup | None = None
87
86
self .devices : list [Device ] = []
88
87
self .gateways : list [Gateway ] = []
89
- self .event_listener_id : str | None = None
90
88
91
89
async def __aenter__ (self ) -> OverkizClient :
92
90
return self
@@ -101,8 +99,8 @@ async def __aexit__(
101
99
102
100
async def close (self ) -> None :
103
101
"""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 ()
106
104
107
105
await self .server .session .close ()
108
106
@@ -286,11 +284,7 @@ async def register_event_listener(self) -> str:
286
284
timeout : listening sessions are expected to call the /events/{listenerId}/fetch
287
285
API on a regular basis.
288
286
"""
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 ()
294
288
295
289
@backoff .on_exception (backoff .expo , TooManyConcurrentRequestsException , max_tries = 5 )
296
290
@backoff .on_exception (
@@ -309,7 +303,9 @@ async def fetch_events(self) -> list[Event]:
309
303
Per-session rate-limit : 1 calls per 1 SECONDS period for this particular
310
304
operation (polling)
311
305
"""
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
+ )
313
309
events = [Event (** e ) for e in humps .decamelize (response )]
314
310
315
311
return events
@@ -319,8 +315,7 @@ async def unregister_event_listener(self) -> None:
319
315
Unregister an event listener.
320
316
API response status is always 200, even on unknown listener ids.
321
317
"""
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 ()
324
319
325
320
@backoff .on_exception (
326
321
backoff .expo , NotAuthenticatedException , max_tries = 2 , on_backoff = relogin
0 commit comments