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

Commit 8cd89b7

Browse files
authored
Merge pull request #14 from seamapi/andrii-documenting
2 parents be8385b + a2b0c12 commit 8cd89b7

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed

seamapi/access_codes.py

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,57 @@ def to_device_id(device: Union[DeviceId, Device]) -> str:
2525

2626
class AccessCodes(AbstractAccessCodes):
2727
seam: Seam
28+
"""
29+
A class used to retreive access code data
30+
through interaction with Seam API
31+
32+
...
33+
34+
Attributes
35+
----------
36+
seam : dict
37+
Initial seam class
38+
39+
Methods
40+
-------
41+
list(device)
42+
Gets a list of access codes for a device
43+
get(access_code)
44+
Gets a certain access code of a device
45+
create(device, name, code=None, starts_at=None, ends_at=None)
46+
Creates an access code on a device
47+
delete(access_code)
48+
Deletes an access code on a device
49+
"""
2850

2951
def __init__(self, seam: Seam):
52+
"""
53+
Parameters
54+
----------
55+
seam : dict
56+
Intial seam class
57+
"""
58+
3059
self.seam = seam
3160

3261
def list(self, device: Union[DeviceId, Device]) -> List[AccessCode]:
62+
"""Gets a list of access codes for a device.
63+
64+
Parameters
65+
----------
66+
device : str or dict
67+
Device id or device dict
68+
69+
Raises
70+
------
71+
Exception
72+
If the API request wasn't successful.
73+
74+
Returns
75+
------
76+
A list of access codes for a device
77+
"""
78+
3379
device_id = to_device_id(device)
3480
res = requests.get(
3581
f"{self.seam.api_url}/access_codes/list?device_id={device_id}",
@@ -41,6 +87,23 @@ def list(self, device: Union[DeviceId, Device]) -> List[AccessCode]:
4187
return [AccessCode.from_dict(ac) for ac in access_codes]
4288

4389
def get(self, access_code: Union[AccessCodeId, AccessCode]) -> AccessCode:
90+
"""Gets a certain access code of a device.
91+
92+
Parameters
93+
----------
94+
access_code : str or dict
95+
Access code id or access code dict
96+
97+
Raises
98+
------
99+
Exception
100+
If the API request wasn't successful.
101+
102+
Returns
103+
------
104+
An access code dict
105+
"""
106+
44107
access_code_id = to_access_code_id(access_code)
45108
res = requests.get(
46109
f"{self.seam.api_url}/access_codes/get",
@@ -59,6 +122,31 @@ def create(
59122
starts_at: Optional[str] = None,
60123
ends_at: Optional[str] = None,
61124
) -> AccessCode:
125+
"""Creates an access code on a device.
126+
127+
Parameters
128+
----------
129+
device : str or dict
130+
Device id or device dict
131+
name : str
132+
Access code name
133+
code : str, optional
134+
Access code value
135+
starts_at : str, optional
136+
Time when access code becomes effective
137+
ends_at : str, optional
138+
Time when access code ceases to be effective
139+
140+
Raises
141+
------
142+
Exception
143+
If the API request wasn't successful.
144+
145+
Returns
146+
------
147+
Access code dict
148+
"""
149+
62150
device_id = to_device_id(device)
63151
create_payload = {"device_id": device_id, "name": name}
64152
if code is not None:
@@ -81,6 +169,25 @@ def create(
81169
return AccessCode.from_dict(success_res["access_code"])
82170

83171
def delete(self, access_code: Union[AccessCodeId, AccessCode]) -> ActionAttempt:
172+
"""Deletes an access code on a device.
173+
174+
Parameters
175+
----------
176+
access_code : str or dict
177+
Access code id or access code dict
178+
179+
Raises
180+
------
181+
Exception
182+
If the API request wasn't successful.
183+
Exception
184+
If action attempt failed.
185+
186+
Returns
187+
------
188+
An access code dict
189+
"""
190+
84191
access_code_id = to_access_code_id(access_code)
85192
res = requests.delete(
86193
(f"{self.seam.api_url}/access_codes/delete"),

0 commit comments

Comments
 (0)