1818
1919
2020class ZoomV1 :
21- def __init__ (self , account_id = None , client_id = None , client_secret = None ):
21+ def __init__ (
22+ self ,
23+ account_id : Optional [str ] = None ,
24+ client_id : Optional [str ] = None ,
25+ client_secret : Optional [str ] = None ,
26+ ):
2227 """
2328 Instantiate the Zoom class.
2429
@@ -49,7 +54,13 @@ def get_oauth_client(self) -> OAuth2APIConnector:
4954 authorization_kwargs = {"account_id" : self .account_id },
5055 )
5156
52- def _get_request (self , endpoint , data_key , params = None , ** kwargs ):
57+ def _get_request (
58+ self ,
59+ endpoint : str ,
60+ data_key : Optional [str ],
61+ params : Optional [Dict [str , str ]] = None ,
62+ ** kwargs ,
63+ ) -> Table :
5364 """
5465 TODO: Consider increasing default page size.
5566
@@ -154,7 +165,7 @@ def __process_poll_results(self, tbl: Table) -> Table:
154165
155166 return tbl
156167
157- def get_users (self , status = "active" , role_id = None ):
168+ def get_users (self , status : str = "active" , role_id : Optional [ str ] = None ) -> Table :
158169 """
159170 Get users.
160171
@@ -180,13 +191,13 @@ def get_users(self, status="active", role_id=None):
180191
181192 def get_meetings (
182193 self ,
183- user_id ,
194+ user_id : str ,
184195 meeting_type : Literal [
185196 "scheduled" , "live" , "upcoming" , "upcoming_meetings" , "previous_meetings"
186197 ] = "scheduled" ,
187198 from_date : Optional [datetime .date ] = None ,
188199 to_date : Optional [datetime .date ] = None ,
189- ):
200+ ) -> Table :
190201 """
191202 Get meetings scheduled by a user.
192203
@@ -228,7 +239,7 @@ def get_meetings(
228239 logger .info (f"Retrieved { tbl .num_rows } meetings." )
229240 return tbl
230241
231- def get_past_meeting (self , meeting_uuid ) :
242+ def get_past_meeting (self , meeting_uuid : str ) -> Table :
232243 """
233244 Get metadata regarding a past meeting.
234245
@@ -244,7 +255,7 @@ def get_past_meeting(self, meeting_uuid):
244255 logger .info (f"Retrieved meeting { meeting_uuid } ." )
245256 return tbl
246257
247- def get_past_meeting_participants (self , meeting_id ) :
258+ def get_past_meeting_participants (self , meeting_id : int ) -> Table :
248259 """
249260 Get past meeting participants.
250261
@@ -260,7 +271,7 @@ def get_past_meeting_participants(self, meeting_id):
260271 logger .info (f"Retrieved { tbl .num_rows } participants." )
261272 return tbl
262273
263- def get_meeting_registrants (self , meeting_id ) :
274+ def get_meeting_registrants (self , meeting_id : int ) -> Table :
264275 """
265276 Get meeting registrants.
266277
@@ -276,7 +287,7 @@ def get_meeting_registrants(self, meeting_id):
276287 logger .info (f"Retrieved { tbl .num_rows } registrants." )
277288 return tbl
278289
279- def get_user_webinars (self , user_id ) :
290+ def get_user_webinars (self , user_id : str ) -> Table :
280291 """
281292 Get meeting registrants.
282293
@@ -292,7 +303,7 @@ def get_user_webinars(self, user_id):
292303 logger .info (f"Retrieved { tbl .num_rows } webinars." )
293304 return tbl
294305
295- def get_past_webinar_report (self , webinar_id ) :
306+ def get_past_webinar_report (self , webinar_id : str ) -> Optional [ Dict ] :
296307 """
297308 Get past meeting participants
298309
@@ -309,7 +320,7 @@ def get_past_webinar_report(self, webinar_id):
309320 logger .info (f"Retrieved webinar_report for webinar: { webinar_id } ." )
310321 return dic
311322
312- def get_past_webinar_participants (self , webinar_id ) :
323+ def get_past_webinar_participants (self , webinar_id : str ) -> Table :
313324 """
314325 Get past meeting participants
315326
@@ -325,7 +336,7 @@ def get_past_webinar_participants(self, webinar_id):
325336 logger .info (f"Retrieved { tbl .num_rows } webinar participants." )
326337 return tbl
327338
328- def get_webinar_registrants (self , webinar_id ) :
339+ def get_webinar_registrants (self , webinar_id : str ) -> Table :
329340 """
330341 Get past meeting participants
331342
@@ -341,7 +352,7 @@ def get_webinar_registrants(self, webinar_id):
341352 logger .info (f"Retrieved { tbl .num_rows } webinar registrants." )
342353 return tbl
343354
344- def get_meeting_poll_metadata (self , meeting_id , poll_id , version : int = 1 ) -> Table :
355+ def get_meeting_poll_metadata (self , meeting_id : int , poll_id : int , version : int = 1 ) -> Table :
345356 """
346357 Get metadata about a specific poll for a given meeting ID
347358
@@ -374,7 +385,7 @@ def get_meeting_poll_metadata(self, meeting_id, poll_id, version: int = 1) -> Ta
374385 else :
375386 return tbl
376387
377- def get_meeting_all_polls_metadata (self , meeting_id , version : int = 1 ) -> Table :
388+ def get_meeting_all_polls_metadata (self , meeting_id : int , version : int = 1 ) -> Table :
378389 """
379390 Get metadata for all polls for a given meeting ID
380391
@@ -399,7 +410,7 @@ def get_meeting_all_polls_metadata(self, meeting_id, version: int = 1) -> Table:
399410
400411 return self .__handle_nested_json (table = tbl , column = "questions" , version = version )
401412
402- def get_past_meeting_poll_metadata (self , meeting_id , version : int = 1 ) -> Table :
413+ def get_past_meeting_poll_metadata (self , meeting_id : int , version : int = 1 ) -> Table :
403414 """
404415 List poll metadata of a past meeting.
405416
@@ -427,7 +438,7 @@ def get_past_meeting_poll_metadata(self, meeting_id, version: int = 1) -> Table:
427438
428439 return self .__handle_nested_json (table = tbl , column = "question_details" , version = version )
429440
430- def get_webinar_poll_metadata (self , webinar_id , poll_id , version : int = 1 ) -> Table :
441+ def get_webinar_poll_metadata (self , webinar_id : str , poll_id : int , version : int = 1 ) -> Table :
431442 """
432443 Get metadata for a specific poll for a given webinar ID
433444
@@ -456,7 +467,7 @@ def get_webinar_poll_metadata(self, webinar_id, poll_id, version: int = 1) -> Ta
456467
457468 return self .__handle_nested_json (table = tbl , column = "prompts" , version = version )
458469
459- def get_webinar_all_polls_metadata (self , webinar_id , version : int = 1 ) -> Table :
470+ def get_webinar_all_polls_metadata (self , webinar_id : str , version : int = 1 ) -> Table :
460471 """
461472 Get metadata for all polls for a given webinar ID
462473
@@ -481,7 +492,7 @@ def get_webinar_all_polls_metadata(self, webinar_id, version: int = 1) -> Table:
481492
482493 return self .__handle_nested_json (table = tbl , column = "questions" , version = version )
483494
484- def get_past_webinar_poll_metadata (self , webinar_id , version : int = 1 ) -> Table :
495+ def get_past_webinar_poll_metadata (self , webinar_id : str , version : int = 1 ) -> Table :
485496 """
486497 Retrieves the metadata for Webinar Polls of a specific Webinar
487498
@@ -506,7 +517,7 @@ def get_past_webinar_poll_metadata(self, webinar_id, version: int = 1) -> Table:
506517
507518 return self .__handle_nested_json (table = tbl , column = "question_details" , version = version )
508519
509- def get_meeting_poll_results (self , meeting_id ) -> Table :
520+ def get_meeting_poll_results (self , meeting_id : int ) -> Table :
510521 """
511522 Get a report of poll results for a past meeting
512523
@@ -524,7 +535,7 @@ def get_meeting_poll_results(self, meeting_id) -> Table:
524535
525536 return self .__process_poll_results (tbl = tbl )
526537
527- def get_webinar_poll_results (self , webinar_id ) -> Table :
538+ def get_webinar_poll_results (self , webinar_id : str ) -> Table :
528539 """
529540 Get a report of poll results for a past webinar
530541
@@ -575,10 +586,21 @@ class ZoomV2(ZoomV1):
575586 ZoomV1 (cls): version 1 Zoom connector class
576587 """
577588
578- def __init__ (self , account_id = None , client_id = None , client_secret = None ):
589+ def __init__ (
590+ self ,
591+ account_id : Optional [str ] = None ,
592+ client_id : Optional [str ] = None ,
593+ client_secret : Optional [str ] = None ,
594+ ):
579595 super ().__init__ (account_id , client_id , client_secret )
580596
581- def _get_request (self , endpoint : str , data_key : str , params : dict = None , ** kwargs ):
597+ def _get_request (
598+ self ,
599+ endpoint : str ,
600+ data_key : Optional [str ],
601+ params : Optional [Dict [str , str ]] = None ,
602+ ** kwargs ,
603+ ) -> Table :
582604 """
583605 `Args`:
584606 endpoint: str
@@ -623,7 +645,7 @@ def _get_request(self, endpoint: str, data_key: str, params: dict = None, **kwar
623645
624646 return Table (data )
625647
626- def get_webinars (self , user_id : int ):
648+ def get_webinars (self , user_id : int ) -> Table :
627649 """
628650 Get webinars scheduled by or on behalf of a webinar host.
629651
@@ -639,12 +661,27 @@ def get_webinars(self, user_id: int):
639661 logger .info (f"Retrieved { tbl .num_rows } webinars." )
640662 return tbl
641663
642- def get_user_webinars (self , user_id ):
664+ def get_webinar_occurrences (self , webinar_id : int ) -> Table :
665+ """
666+ Get webinar occurrences for a given webinar ID.
667+
668+ `Args:`
669+ webinar_id: int
670+ The webinar id
671+ `Returns:`
672+ Parsons Table
673+ See :ref:`parsons-table` for output options.
674+ """
675+ tbl = self ._get_request (f"webinars/{ webinar_id } /" , "occurrences" )
676+ logger .info (f"Retrieved { tbl .num_rows } webinar occurrences." )
677+ return tbl
678+
679+ def get_user_webinars (self , user_id : str ) -> AttributeError :
643680 return AttributeError (
644681 "Method get_user_webinars has been deprecated in favor of get_webinars"
645682 )
646683
647- def get_past_meeting_participants (self , meeting_id : int ):
684+ def get_past_meeting_participants (self , meeting_id : int ) -> Table :
648685 """
649686 Get past meeting participants.
650687
@@ -660,7 +697,7 @@ def get_past_meeting_participants(self, meeting_id: int):
660697 logger .info (f"Retrieved { tbl .num_rows } participants." )
661698 return tbl
662699
663- def get_past_webinar_participants (self , webinar_id : int ):
700+ def get_past_webinar_participants (self , webinar_id : int ) -> Table :
664701 """
665702 Get past webinar participants.
666703
@@ -676,7 +713,7 @@ def get_past_webinar_participants(self, webinar_id: int):
676713 logger .info (f"Retrieved { tbl .num_rows } participants." )
677714 return tbl
678715
679- def get_meeting_poll (self , meeting_id : int , poll_id : str ):
716+ def get_meeting_poll (self , meeting_id : int , poll_id : str ) -> Table :
680717 """
681718 Get information about a single poll for a given meeting ID.
682719 The returned data is identical to get_meeting_polls.
@@ -702,7 +739,7 @@ def get_meeting_poll_metadata(self, meeting_id, poll_id, version=1):
702739 "Method get_meeting_poll_metadata is deprecated in favor of get_meeting_poll"
703740 )
704741
705- def get_meeting_polls (self , meeting_id : int ):
742+ def get_meeting_polls (self , meeting_id : int ) -> Table :
706743 """
707744 Get information about all polls for a given meeting ID.
708745 The returned data is identical to get_meeting_poll but for
@@ -727,7 +764,7 @@ def get_meeting_all_polls_metadata(self, meeting_id, version=1):
727764 "Method get_meeting_all_polls_metadata is deprecated in favor of get_meeting_polls"
728765 )
729766
730- def get_past_meeting_poll_results (self , meeting_id : int ):
767+ def get_past_meeting_poll_results (self , meeting_id : int ) -> Table :
731768 """
732769 Get results for all polls for a given past meeting ID
733770
@@ -750,7 +787,7 @@ def get_past_meeting_poll_metadata(self, meeting_id, version=1):
750787 "Method get_past_meeting_poll_metadata is deprecated in favor of get_past_meeting_poll_results"
751788 )
752789
753- def get_webinar_poll (self , webinar_id : int , poll_id : str ):
790+ def get_webinar_poll (self , webinar_id : int , poll_id : str ) -> Table :
754791 """
755792 Get information about a single poll for a given webinar ID.
756793 The returned data is identical to get_webinar_polls.
@@ -776,7 +813,7 @@ def get_webinar_poll_metadata(self, webinar_id, poll_id, version=1):
776813 "Method get_webinar_poll_metadata is deprecated in favor of get_webinar_poll"
777814 )
778815
779- def get_webinar_polls (self , webinar_id : int ):
816+ def get_webinar_polls (self , webinar_id : int ) -> Table :
780817 """
781818 Get information for all polls for a given webinar ID
782819 The returned data is identical to get_webinar_poll but includes
@@ -801,7 +838,7 @@ def get_webinar_all_polls_metadata(self, webinar_id, version=1):
801838 "Method get_webinar_all_polls_metadata is deprecated in favor of get_webinar_polls"
802839 )
803840
804- def get_past_webinar_poll_results (self , webinar_id : int ):
841+ def get_past_webinar_poll_results (self , webinar_id : int ) -> Table :
805842 """
806843 Get results for all polls for a given past webinar ID
807844
@@ -824,7 +861,7 @@ def get_past_webinar_poll_metadata(self, webinar_id, version=1):
824861 "Method get_past_webinar_poll_metadata is deprecated in favor of get_past_webinar_poll_results"
825862 )
826863
827- def get_meeting_poll_reports (self , meeting_id : int ):
864+ def get_meeting_poll_reports (self , meeting_id : int ) -> Table :
828865 """
829866 Get polls reports for a given past meeting ID
830867
@@ -847,7 +884,7 @@ def get_meeting_poll_results(self, meeting_id):
847884 "Method get_meeting_poll_results is deprecated in favor of get_meeting_poll_reports"
848885 )
849886
850- def get_webinar_poll_reports (self , webinar_id : int ):
887+ def get_webinar_poll_reports (self , webinar_id : int ) -> Table :
851888 """
852889 Get results for all polls for a given past webinar ID
853890
@@ -872,7 +909,13 @@ def get_webinar_poll_results(self, webinar_id):
872909
873910
874911class Zoom :
875- def __new__ (cls , account_id = None , client_id = None , client_secret = None , parsons_version = "v1" ):
912+ def __new__ (
913+ cls ,
914+ account_id : Optional [str ] = None ,
915+ client_id : Optional [str ] = None ,
916+ client_secret : Optional [str ] = None ,
917+ parsons_version : str = "v1" ,
918+ ) -> ZoomV1 :
876919 """
877920 Create and return Zoom instance base on chosen version (1 or 2)
878921
0 commit comments