@@ -25,11 +25,57 @@ def to_device_id(device: Union[DeviceId, Device]) -> str:
2525
2626class 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