Skip to content
This repository was archived by the owner on Jun 28, 2024. It is now read-only.

Commit b4be008

Browse files
authored
feat: Merge pull request #45 from seamapi/implement-devices-delete
fix #36: Implement `devices.delete`
2 parents e247042 + 1e888a1 commit b4be008

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

seamapi/devices.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,36 @@ def update(
187187
if not res.ok:
188188
raise Exception(res.text)
189189

190-
return True
190+
return True
191+
192+
def delete(self, device: Union[DeviceId, Device]) -> bool:
193+
"""Deletes a device.
194+
195+
Parameters
196+
----------
197+
device : DeviceId or Device
198+
Device id or Device to delete
199+
200+
Raises
201+
------
202+
Exception
203+
If the API request wasn't successful.
204+
205+
Returns
206+
------
207+
None
208+
"""
209+
210+
if not device:
211+
raise Exception("device is required")
212+
213+
params = {"device_id": to_device_id(device)}
214+
res = requests.post(
215+
f"{self.seam.api_url}/devices/delete",
216+
headers={"Authorization": f"Bearer {self.seam.api_key}"},
217+
params=params,
218+
)
219+
if not res.ok:
220+
raise Exception(res.text)
221+
222+
return None

tests/devices/test_devices.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,6 @@ def test_devices(seam: Seam):
3131
seam.devices.update(device=(some_device), name="Updated lock")
3232
some_updated_lock = seam.locks.get(device=(some_device))
3333
assert some_updated_lock.properties.name == "Updated lock"
34+
35+
seam.devices.delete(device=(some_updated_lock))
36+
assert len(seam.devices.list()) == len(devices) - 1

0 commit comments

Comments
 (0)