Skip to content

Commit 9898e24

Browse files
committed
✨ Add get user, sites and devices
1 parent af0c44e commit 9898e24

1 file changed

Lines changed: 29 additions & 8 deletions

File tree

comwatt/client.py

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
class ComwattClient:
55
def __init__(self):
66
self.base_url = 'https://energy.comwatt.com/api'
7+
self.session = requests.Session()
78

89
def authenticate(self, username, password):
910
url = f'{self.base_url}/v1/authent'
@@ -18,14 +19,34 @@ def authenticate(self, username, password):
1819
}
1920
data = {'username': username, 'password': password}
2021

21-
response = requests.post(url, headers=headers, json=data)
22-
print(json.dumps(response.json()))
22+
response = self.session.post(url, headers=headers, json=data)
23+
24+
if response.status_code != 200:
25+
raise Exception(f'Authentication failed: {response.status_code}')
26+
27+
def get_authenticated_user(self):
28+
url = f'{self.base_url}/users/authenticated'
29+
30+
response = self.session.get(url)
31+
if response.status_code == 200:
32+
return response.json()
33+
else:
34+
raise Exception(f'Error retrieving authenticated user: {response.sttaus_code}')
35+
36+
def get_sites(self):
37+
url = f'{self.base_url}/sites'
38+
39+
response = self.session.get(url)
2340
if response.status_code == 200:
24-
auth_token = response.json().get('token')
25-
if auth_token:
41+
return response.json()
42+
else:
43+
raise Exception(f'Error retrieving sites: {response.sttaus_code}')
2644

27-
return auth_token
28-
else:
29-
raise Exception('Authentication failed: No token received')
45+
def get_devices(self, site_id):
46+
url = f'{self.base_url}/devices?siteId={site_id}'
47+
48+
response = self.session.get(url)
49+
if response.status_code == 200:
50+
return response.json()
3051
else:
31-
raise Exception(f'Authentication failed: {response.status_code}')
52+
raise Exception(f'Error retrieving sites: {response.sttaus_code}')

0 commit comments

Comments
 (0)