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

Commit 655ffaf

Browse files
authored
fix: add type parameter to access_codes.create (#127)
1 parent 1be526b commit 655ffaf

File tree

2 files changed

+26
-58
lines changed

2 files changed

+26
-58
lines changed

seamapi/access_codes.py

Lines changed: 19 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ def __init__(self, seam: Seam):
6565
def list(
6666
self,
6767
device: Optional[Union[DeviceId, Device]] = None,
68-
access_codes: Optional[
69-
Union[List[AccessCode], List[AccessCodeId]]
70-
] = None,
68+
access_codes: Optional[Union[List[AccessCode], List[AccessCodeId]]] = None,
7169
) -> List[AccessCode]:
7270
"""Gets a list of access codes for a device.
7371
@@ -92,9 +90,7 @@ def list(
9290
if device:
9391
params["device_id"] = to_device_id(device)
9492
if access_codes:
95-
params["access_code_ids"] = [
96-
to_access_code_id(ac) for ac in access_codes
97-
]
93+
params["access_code_ids"] = [to_access_code_id(ac) for ac in access_codes]
9894

9995
res = self.seam.make_request(
10096
"GET",
@@ -150,6 +146,7 @@ def create(
150146
device: Union[DeviceId, Device],
151147
name: Optional[str] = None,
152148
code: Optional[str] = None,
149+
type: Optional[str] = None,
153150
starts_at: Optional[str] = None,
154151
ends_at: Optional[str] = None,
155152
common_code_key: Optional[str] = None,
@@ -174,6 +171,8 @@ def create(
174171
Access code name
175172
code : str, optional
176173
Access code value
174+
type : str, optional
175+
Access code type eg. ongoing or time_bound
177176
starts_at : str, optional
178177
Time when access code becomes effective
179178
ends_at : str, optional
@@ -224,48 +223,32 @@ def create(
224223
create_payload["ends_at"] = ends_at
225224
if common_code_key is not None:
226225
create_payload["common_code_key"] = common_code_key
226+
if type is not None:
227+
create_payload["type"] = type
227228
if attempt_for_offline_device is not None:
228-
create_payload[
229-
"attempt_for_offline_device"
230-
] = attempt_for_offline_device
229+
create_payload["attempt_for_offline_device"] = attempt_for_offline_device
231230
if allow_external_modification is not None:
232-
create_payload[
233-
"allow_external_modification"
234-
] = allow_external_modification
231+
create_payload["allow_external_modification"] = allow_external_modification
235232
if prefer_native_scheduling is not None:
236-
create_payload[
237-
"prefer_native_scheduling"
238-
] = prefer_native_scheduling
233+
create_payload["prefer_native_scheduling"] = prefer_native_scheduling
239234
if use_backup_access_code_pool is not None:
240-
create_payload[
241-
"use_backup_access_code_pool"
242-
] = use_backup_access_code_pool
235+
create_payload["use_backup_access_code_pool"] = use_backup_access_code_pool
243236
if use_offline_access_code is not None:
244-
create_payload[
245-
"use_offline_access_code"
246-
] = use_offline_access_code
237+
create_payload["use_offline_access_code"] = use_offline_access_code
247238
if is_offline_access_code is not None:
248-
create_payload[
249-
"is_offline_access_code"
250-
] = is_offline_access_code
239+
create_payload["is_offline_access_code"] = is_offline_access_code
251240
if is_one_time_use is not None:
252-
create_payload[
253-
"is_one_time_use"
254-
] = is_one_time_use
241+
create_payload["is_one_time_use"] = is_one_time_use
255242
if max_time_rounding is not None:
256-
create_payload[
257-
"max_time_rounding"
258-
] = max_time_rounding
243+
create_payload["max_time_rounding"] = max_time_rounding
259244

260245
if (
261246
wait_for_code
262247
and starts_at is not None
263248
and datetime.fromisoformat(starts_at)
264249
> datetime.now() + timedelta(seconds=5)
265250
):
266-
raise RuntimeError(
267-
"Cannot use wait_for_code with a future time bound code"
268-
)
251+
raise RuntimeError("Cannot use wait_for_code with a future time bound code")
269252

270253
res = self.seam.make_request(
271254
"POST",
@@ -422,9 +405,7 @@ def update(
422405
if type is not None:
423406
update_payload["type"] = type
424407
if allow_external_modification is not None:
425-
update_payload[
426-
"allow_external_modification"
427-
] = allow_external_modification
408+
update_payload["allow_external_modification"] = allow_external_modification
428409

429410
res = self.seam.make_request(
430411
"POST",
@@ -655,9 +636,7 @@ def convert_to_managed(
655636
}
656637

657638
if allow_external_modification is not None:
658-
payload[
659-
"allow_external_modification"
660-
] = allow_external_modification
639+
payload["allow_external_modification"] = allow_external_modification
661640

662641
res = self.seam.make_request(
663642
"POST",
@@ -668,5 +647,5 @@ def convert_to_managed(
668647
action_attempt = self.seam.action_attempts.poll_until_ready(
669648
res["action_attempt"]["action_attempt_id"]
670649
)
671-
650+
672651
return action_attempt

seamapi/types.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ def __init__(
5353

5454

5555
class WaitForAccessCodeFailedException(Exception):
56-
def __init__(
57-
self, message: str, access_code_id: str, errors: Optional[list] = []
58-
):
56+
def __init__(self, message: str, access_code_id: str, errors: Optional[list] = []):
5957
self.access_code_id = access_code_id
6058
self.errors = errors
6159
super().__init__(f"Failed while waiting for access code. ${message}")
@@ -363,9 +361,7 @@ class AbstractAccessCodes(abc.ABC):
363361
def list(
364362
self,
365363
device: Optional[Union[DeviceId, Device]] = None,
366-
access_codes: Optional[
367-
Union[List[AccessCode], List[AccessCodeId]]
368-
] = None,
364+
access_codes: Optional[Union[List[AccessCode], List[AccessCodeId]]] = None,
369365
) -> List[AccessCode]:
370366
raise NotImplementedError
371367

@@ -394,6 +390,7 @@ def create(
394390
device: Union[DeviceId, Device],
395391
name: Optional[str] = None,
396392
code: Optional[str] = None,
393+
type: Optional[str] = None,
397394
starts_at: Optional[str] = None,
398395
ends_at: Optional[str] = None,
399396
common_code_key: Optional[str] = None,
@@ -486,9 +483,7 @@ def noise_thresholds(self) -> AbstractNoiseThresholds:
486483
raise NotImplementedError
487484

488485
@abc.abstractmethod
489-
def list_noise_levels(
490-
self, starting_after=None, ending_before=None
491-
) -> None:
486+
def list_noise_levels(self, starting_after=None, ending_before=None) -> None:
492487
raise NotImplementedError
493488

494489

@@ -505,9 +500,7 @@ def get(
505500
def list(
506501
self,
507502
connected_account: Union[ConnectedAccountId, ConnectedAccount] = None,
508-
connected_accounts: List[
509-
Union[ConnectedAccountId, ConnectedAccount]
510-
] = None,
503+
connected_accounts: List[Union[ConnectedAccountId, ConnectedAccount]] = None,
511504
connect_webview: Union[ConnectWebviewId, ConnectWebview] = None,
512505
device_type: Optional[DeviceType] = None,
513506
device_types: Optional[List[DeviceType]] = None,
@@ -534,9 +527,7 @@ class AbstractDevices(abc.ABC):
534527
def list(
535528
self,
536529
connected_account: Union[ConnectedAccountId, ConnectedAccount] = None,
537-
connected_accounts: List[
538-
Union[ConnectedAccountId, ConnectedAccount]
539-
] = None,
530+
connected_accounts: List[Union[ConnectedAccountId, ConnectedAccount]] = None,
540531
connect_webview: Union[ConnectWebviewId, ConnectWebview] = None,
541532
device_type: Optional[DeviceType] = None,
542533
device_types: Optional[List[DeviceType]] = None,
@@ -695,9 +686,7 @@ class AbstractThermostats(abc.ABC):
695686
def list(
696687
self,
697688
connected_account: Union[ConnectedAccountId, ConnectedAccount] = None,
698-
connected_accounts: List[
699-
Union[ConnectedAccountId, ConnectedAccount]
700-
] = None,
689+
connected_accounts: List[Union[ConnectedAccountId, ConnectedAccount]] = None,
701690
connect_webview: Union[ConnectWebviewId, ConnectWebview] = None,
702691
device_type: Optional[DeviceType] = None,
703692
device_types: Optional[List[DeviceType]] = None,

0 commit comments

Comments
 (0)