updated json parsing

This commit is contained in:
2025-02-07 22:21:34 -05:00
parent c080aa1b87
commit 9aa9ab08c2

36
app.py
View File

@ -59,12 +59,26 @@ class UnifiAPI:
def get_all_devices(self):
url = f"{self.base_url}/v1/sites/{self.site_id}/devices"
response = self.session.get(url, headers=self.headers)
response.raise_for_status()
return response.json()['data']
def get_device_details(self, device_id):
url = f"{self.base_url}/v1/sites/{self.site_id}/devices/{device_id}"
response = self.session.get(url, headers=self.headers)
return response.json()
response.raise_for_status()
data = response.json()
return {
'state': data['state'],
'firmware': {
'version': data['firmwareVersion'],
'updatable': data.get('firmwareUpdatable', False)
},
'network': {
'ip': data['ipAddress'],
'mac': data['macAddress']
},
'interfaces': self._parse_interfaces(data.get('interfaces', {}))
}
def get_device_diagnostics(self, device):
details = self.get_device_details(device['ip'])
@ -73,24 +87,15 @@ class UnifiAPI:
diagnostics = {
'state': details['state'],
'firmware': {
'version': details['firmwareVersion'],
'updatable': details.get('firmwareUpdatable', False)
},
'network': {
'ip': details['ipAddress'],
'mac': details['macAddress']
},
'firmware': details['firmware'],
'network': details['network'],
'uptime': {
'adopted_at': details['adoptedAt'],
'provisioned_at': details['provisionedAt']
'adopted_at': details.get('adoptedAt'),
'provisioned_at': details.get('provisionedAt')
},
'interfaces': {}
'interfaces': details['interfaces']
}
if 'interfaces' in details:
diagnostics['interfaces'] = self._parse_interfaces(details['interfaces'])
return diagnostics
def _parse_interfaces(self, interfaces):
@ -117,7 +122,6 @@ class UnifiAPI:
}
return result
# Monitoring functions
def run_diagnostics(device):
try: