@@ -38,7 +38,7 @@ def __init__(self, *, user, pwd, url, loglevel=None):
3838
3939 self .user , self .pwd = user , pwd
4040 self .url = url if url .startswith ('http' ) else 'https://{}' .format (url )
41- self .api = self .url + '/api/'
41+ self .endpoint = self .url + '/api/'
4242
4343 # Will be setup within login()
4444 self .session_id = None
@@ -93,7 +93,7 @@ def login(self):
9393 }
9494 self .logger .info ('Logging in.' )
9595 # We can't use self.post() yet as session_id is not set.
96- r = self .s .post (self .api + 'logon/' , json = login_data )
96+ r = self .s .post (self .endpoint + 'logon/' , json = login_data )
9797 # The following line exceptions out on not 200 return code.
9898 r .raise_for_status ()
9999
@@ -122,17 +122,28 @@ def is_loggedin(self):
122122
123123 # All get/post/delete will have the same url base, and will all require the same
124124 # params parameter. Let's make everybody's life easy.
125+ # A query could legitimately need to extend the 'params' parameter, hence the merge of kwargs
126+ # with the hardcoded dict with sessionId.
127+
128+ def extend_with_sessionid (self , kwargs ):
129+ if 'params' in kwargs :
130+ kwargs ['params' ]['sessionId' ] = self .session_id
131+ else :
132+ kwargs ['params' ] = {'sessionId' : self .session_id }
133+ return kwargs
134+
135+
125136 def get (self , url , ** kwargs ):
126- r = self .s .get (self .api + url , params = { 'sessionId' : self . session_id }, ** kwargs )
137+ r = self .s .get (self .endpoint + url , ** self . extend_with_sessionid ( kwargs ) )
127138 r .raise_for_status ()
128139 return r
129140
130141 def post (self , url , ** kwargs ):
131- r = self .s .post (self .api + url , params = { 'sessionId' : self . session_id }, ** kwargs )
142+ r = self .s .post (self .endpoint + url , ** self . extend_with_sessionid ( kwargs ) )
132143 r .raise_for_status ()
133144 return r
134145
135146 def delete (self , url , ** kwargs ):
136- r = self .s .delete (self .api + url , params = { 'sessionId' : self . session_id }, ** kwargs )
147+ r = self .s .delete (self .endpoint + url , ** self . extend_with_sessionid ( kwargs ) )
137148 r .raise_for_status ()
138149 return r
0 commit comments