@@ -38,7 +38,6 @@ def __init__(self, username: str, password: str, api_url: str = API_URL) -> None
3838 self .api_url = api_url
3939
4040 self .devices : List [Device ] = []
41- self .__roles = None
4241 self .event_listener_id : Optional [str ] = None
4342
4443 self .session = aiohttp .ClientSession ()
@@ -57,24 +56,20 @@ async def __aexit__(
5756 async def close (self ) -> None :
5857 """Close the session."""
5958 if self .event_listener_id :
60- await self .unregister_event_listener (self . event_listener_id )
59+ await self .unregister_event_listener ()
6160
6261 await self .session .close ()
6362
64- async def login (self ) -> bool :
63+ async def login (self , register : Optional [ bool ] = True ) -> bool :
6564 """
6665 Authenticate and create an API session allowing access to the other operations.
6766 Caller must provide one of [userId+userPassword, userId+ssoToken, accessToken, jwt]
6867 """
6968 payload = {"userId" : self .username , "userPassword" : self .password }
7069 response = await self .__post ("login" , data = payload )
71-
72- if response .get ("success" ):
73- self .__roles = response .get ("roles" )
74-
75- return True
76-
77- return False
70+ if register :
71+ await self .register_event_listener ()
72+ return response .get ("success" )
7873
7974 async def get_devices (self , refresh : bool = False ) -> List [Device ]:
8075 """
@@ -116,24 +111,24 @@ async def register_event_listener(self) -> str:
116111
117112 return listener_id
118113
119- async def fetch_event_listener (self , listener_id : str ) -> List [Event ]:
114+ async def fetch_event_listener (self ) -> List [Event ]:
120115 """
121116 Fetch new events from a registered event listener. Fetched events are removed
122117 from the listener buffer. Return an empty response if no event is available.
123118 Per-session rate-limit : 1 calls per 1 SECONDS period for this particular
124119 operation (polling)
125120 """
126- response = await self .__post (f"events/{ listener_id } /fetch" )
121+ response = await self .__post (f"events/{ self . event_listener_id } /fetch" )
127122 events = [Event (** e ) for e in humps .decamelize (response )]
128123
129124 return events
130125
131- async def unregister_event_listener (self , listener_id : str ) -> None :
126+ async def unregister_event_listener (self ) -> None :
132127 """
133128 Unregister an event listener.
134129 API response status is always 200, even on unknown listener ids.
135130 """
136- await self .__post (f"events/{ listener_id } /unregister" )
131+ await self .__post (f"events/{ self . event_listener_id } /unregister" )
137132 self .event_listener_id = None
138133
139134 async def get_current_execution (self , exec_id : str ) -> Execution :
0 commit comments