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

Commit acebae9

Browse files
authored
feat: Merge pull request #58 from seamapi/add-new-params-nov-14
2 parents 4c5c71b + ce5afda commit acebae9

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

seamapi/connect_webviews.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ConnectWebviews(AbstractConnectWebviews):
3030
get(connect_webview)
3131
Gets a connect webview
3232
create(
33-
accepted_providers, custom_redirect_url=None, device_selection_mode==None
33+
accepted_providers, custom_redirect_url=None, custom_redirect_failure_url=None, device_selection_mode=None
3434
)
3535
Creates a connect webview
3636
"""
@@ -107,6 +107,7 @@ def create(
107107
self,
108108
accepted_providers: List[AcceptedProvider],
109109
custom_redirect_url: Optional[str] = None,
110+
custom_redirect_failure_url: Optional[str] = None,
110111
device_selection_mode: Optional[str] = None,
111112
) -> ConnectWebview:
112113
"""Creates a connect webview.
@@ -117,6 +118,8 @@ def create(
117118
A list of accepted providers e.g. august or noiseaware
118119
custom_redirect_url : str, optional
119120
Custom redirect url
121+
custom_redirect_failure_url : str, optional
122+
Custom redirect failure url
120123
device_selection_mode : str, optional
121124
Selection mode: 'none', 'single' or 'multiple'
122125
@@ -133,6 +136,8 @@ def create(
133136
create_payload = {"accepted_providers": accepted_providers}
134137
if custom_redirect_url is not None:
135138
create_payload["custom_redirect_url"] = custom_redirect_url
139+
if custom_redirect_failure_url is not None:
140+
create_payload["custom_redirect_failure_url"] = custom_redirect_failure_url
136141
if device_selection_mode is not None:
137142
create_payload["device_selection_mode"] = device_selection_mode
138143

seamapi/devices.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class Devices(AbstractDevices):
3232
3333
Methods
3434
-------
35-
list(connected_account=None, connect_webview=None, device_type=None)
35+
list(connected_account=None, connect_webview=None, device_type=None, device_ids=None)
3636
Gets a list of devices
3737
get(device=None, name=None)
3838
Gets a device
@@ -58,6 +58,7 @@ def list(
5858
connected_account: Union[ConnectedAccountId, ConnectedAccount] = None,
5959
connect_webview: Union[ConnectWebviewId, ConnectWebview] = None,
6060
device_type: Optional[DeviceType] = None,
61+
device_ids: Optional[list] = None,
6162
) -> List[Device]:
6263
"""Gets a list of devices.
6364
@@ -69,6 +70,8 @@ def list(
6970
Connect webview id or ConnectWebview to get devices associated with
7071
device_type : DeviceType, optional
7172
Device type e.g. august_lock
73+
device_ids : Optional[list]
74+
Device IDs to filter devices by
7275
7376
Raises
7477
------
@@ -91,6 +94,8 @@ def list(
9194
)
9295
if device_type:
9396
params["device_type"] = device_type
97+
if device_ids is not None:
98+
params["device_ids"] = [to_device_id(d) for d in device_ids]
9499

95100
res = self.seam.make_request(
96101
"GET",

seamapi/types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ class ConnectWebview:
115115
connected_account_id: Optional[str] = None
116116
authorized_at: Optional[str] = None
117117
custom_redirect_url: Optional[str] = None
118+
custom_redirect_failure_url: Optional[str] = None
118119
accepted_providers: Optional[List[AcceptedProvider]] = None
119120
accepted_devices: Optional[List[str]] = None
120121

tests/access_codes/test_access_codes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from seamapi import Seam
2-
from seamapi.types import ActionAttemptFailedException
2+
from seamapi.types import SeamAPIException
33
from tests.fixtures.run_august_factory import run_august_factory
44
import pytest
55

@@ -21,7 +21,7 @@ def test_access_codes(seam: Seam):
2121
access_code = seam.access_codes.get(created_access_code.access_code_id)
2222
assert access_code.code == "4444"
2323

24-
with pytest.raises(ActionAttemptFailedException):
24+
with pytest.raises(SeamAPIException):
2525
seam.access_codes.create(some_device.device_id, "Duplicate Access Code", "4444")
2626

2727
access_code = seam.access_codes.update(access_code, name="Updated name")

tests/devices/test_devices.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ def test_devices(seam: Seam):
1010
devices = seam.devices.list()
1111
assert len(devices) > 0
1212

13+
device_ids = [devices[0]]
14+
devices = seam.devices.list(device_ids=device_ids)
15+
assert len(devices) == 1
16+
1317
some_device = seam.devices.get(name="Generated Lock 0")
1418
assert some_device.properties.name == "Generated Lock 0"
1519

0 commit comments

Comments
 (0)