Skip to content

Commit 3d24447

Browse files
authored
Raise exception when server response is None.
Added error handling for server response in multiple locations.
1 parent ee78cef commit 3d24447

1 file changed

Lines changed: 28 additions & 2 deletions

File tree

lnetatmo.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,10 @@ def renew_token(self):
277277
"client_secret" : self._clientSecret
278278
}
279279
resp = postRequest("authentication", _AUTH_REQ, postParams)
280+
if not resp:
281+
raise AuthFailure("No response received from server.")
282+
if not resp:
283+
raise AuthFailure("Authentication Error from server.")
280284
if self.refreshToken != resp['refresh_token']:
281285
self.refreshToken = resp['refresh_token']
282286
cred = {"CLIENT_ID":self._clientId,
@@ -302,7 +306,9 @@ def __init__(self, authData):
302306
postParams = {
303307
"access_token" : authData.accessToken
304308
}
305-
resp = postRequest("Weather station", _GETSTATIONDATA_REQ, postParams)
309+
resp = postRequest("Weather station User", _GETSTATIONDATA_REQ, postParams)
310+
if not resp:
311+
raise AuthFailure("No response received from server.")
306312
self.rawData = resp['body']
307313
self.devList = self.rawData['devices']
308314
self.ownerMail = self.rawData['user']['mail']
@@ -331,6 +337,8 @@ def __init__(self, authData, home_id):
331337
"home_id": home_id
332338
}
333339
resp = postRequest("home_status", _HOME_STATUS, postParams)
340+
if not resp:
341+
raise AuthFailure("No response received from server.")
334342
self.resp = resp
335343
self.rawData = resp['body']['home']
336344
if not self.rawData : raise NoHome("No home %s found" % home_id)
@@ -389,6 +397,8 @@ def __init__(self, authData, home=None):
389397
"access_token" : self.getAuthToken
390398
}
391399
resp = postRequest("Thermostat", _GETTHERMOSTATDATA_REQ, postParams)
400+
if not resp:
401+
raise AuthFailure("No response received from server.")
392402
self.rawData = resp['body']['devices']
393403
if not self.rawData : raise NoDevice("No thermostat available")
394404
#
@@ -485,6 +495,8 @@ def __init__(self, authData, home=None, station=None):
485495
"access_token" : self.getAuthToken
486496
}
487497
resp = postRequest("Weather station", _GETSTATIONDATA_REQ, postParams)
498+
if not resp:
499+
raise AuthFailure("No response received from server.")
488500
self.rawData = resp['body']['devices']
489501
# Weather data
490502
if not self.rawData : raise NoDevice("No weather station in any homes")
@@ -670,6 +682,8 @@ def __init__(self, authData, home=None):
670682
"access_token" : self.getAuthToken
671683
}
672684
resp = postRequest("Home data", _GETHOMEDATA_REQ, postParams)
685+
if not resp:
686+
raise AuthFailure("No response received from server.")
673687
self.rawData = resp['body']
674688
# Collect homes
675689
self.homes = self.rawData['homes'][0]
@@ -782,12 +796,14 @@ def cameraUrls(self, camera=None, home=None, cid=None):
782796
if camera_data:
783797
vpn_url = camera_data['vpn_url']
784798
resp = postRequest("Camera", vpn_url + '/command/ping')
799+
if not resp:
800+
raise AuthFailure("No response received from server.")
785801
temp_local_url=resp['local_url']
786802
try:
787803
resp = postRequest("Camera", temp_local_url + '/command/ping',timeout=1)
788804
if resp and temp_local_url == resp['local_url']:
789805
local_url = temp_local_url
790-
except: # On this particular request, vithout errors from previous requests, error is timeout
806+
except: # On this particular request, without errors from previous requests, error is timeout
791807
local_url = None
792808
return vpn_url, local_url
793809

@@ -820,6 +836,8 @@ def getCameraPicture(self, image_id, key):
820836
"key" : key
821837
}
822838
resp = postRequest("Camera", _GETCAMERAPICTURE_REQ, postParams)
839+
if not resp:
840+
raise AuthFailure("No response received from server.")
823841
return resp, "jpeg"
824842

825843
def getProfileImage(self, name):
@@ -853,6 +871,8 @@ def updateEvent(self, event=None, home=None):
853871
"event_id" : event['id']
854872
}
855873
resp = postRequest("Camera", _GETEVENTSUNTIL_REQ, postParams)
874+
if not resp:
875+
raise AuthFailure("No response received from server.")
856876
eventList = resp['body']['events_list']
857877
for e in eventList:
858878
self.events[ e['camera_id'] ][ e['time'] ] = e
@@ -994,6 +1014,8 @@ def __init__(self, authData, home=None):
9941014
}
9951015
#
9961016
resp = postRequest("Module", _GETHOMES_DATA, postParams)
1017+
if not resp:
1018+
raise AuthFailure("No response received from server.")
9971019
# self.rawData = resp['body']['devices']
9981020
self.rawData = resp['body']['homes']
9991021
if not self.rawData : raise NoHome("No home %s found" % home)
@@ -1031,6 +1053,8 @@ def __init__(self, authData):
10311053
"access_token" : self.getAuthToken
10321054
}
10331055
resp = postRequest("HomeCoach", _GETHOMECOACH, postParams)
1056+
if not resp:
1057+
raise AuthFailure("No response received from server.")
10341058
self.rawData = resp['body']['devices']
10351059
# homecoach data
10361060
if not self.rawData : raise NoDevice("No HomeCoach available")
@@ -1078,6 +1102,8 @@ def rawAPI(authData, url, parameters=None):
10781102
if parameters is None: parameters = {}
10791103
parameters["access_token"] = authData.accessToken
10801104
resp = postRequest("rawAPI", fullUrl, parameters)
1105+
if not resp:
1106+
raise AuthFailure("No response received from server.")
10811107
return resp["body"] if "body" in resp else resp
10821108

10831109
def filter_home_data(rawData, home):

0 commit comments

Comments
 (0)