From 4081d8ec764dafdda4b116e7b63a35db3992d426 Mon Sep 17 00:00:00 2001 From: sharinetmc Date: Fri, 13 Dec 2024 11:01:54 -1000 Subject: [PATCH] add method and test webinar report --- parsons/zoom/zoom.py | 28 +++++++++++++++++++++++++--- test/test_zoom.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/parsons/zoom/zoom.py b/parsons/zoom/zoom.py index 7c71bbe32d..0b6b3dac65 100644 --- a/parsons/zoom/zoom.py +++ b/parsons/zoom/zoom.py @@ -126,7 +126,9 @@ def __process_poll_results(self, tbl: Table) -> Table: tbl.remove_column("question_details") # Unpack question values - tbl = tbl.unpack_dict("question_details_value", include_original=True, prepend=False) + tbl = tbl.unpack_dict( + "question_details_value", include_original=True, prepend=False + ) # Remove column from API response tbl.remove_column("question_details_value") @@ -219,7 +221,9 @@ def get_past_meeting_participants(self, meeting_id): See :ref:`parsons-table` for output options. """ - tbl = self._get_request(f"report/meetings/{meeting_id}/participants", "participants") + tbl = self._get_request( + f"report/meetings/{meeting_id}/participants", "participants" + ) logger.info(f"Retrieved {tbl.num_rows} participants.") return tbl @@ -255,6 +259,22 @@ def get_user_webinars(self, user_id): logger.info(f"Retrieved {tbl.num_rows} webinars.") return tbl + def get_webinar_report(self, webinar_id): + """ + Get past meeting participants + + `Args:` + webinar_id: str + The webinar id + `Returns:` + Parsons Table + See :ref:`parsons-table` for output options. + """ + + tbl = self._get_request(f"report/webinars/{webinar_id}") + logger.info(f"Retrieved {tbl.num_rows} webinar report.") + return tbl + def get_past_webinar_participants(self, webinar_id): """ Get past meeting participants @@ -267,7 +287,9 @@ def get_past_webinar_participants(self, webinar_id): See :ref:`parsons-table` for output options. """ - tbl = self._get_request(f"report/webinars/{webinar_id}/participants", "participants") + tbl = self._get_request( + f"report/webinars/{webinar_id}/participants", "participants" + ) logger.info(f"Retrieved {tbl.num_rows} webinar participants.") return tbl diff --git a/test/test_zoom.py b/test/test_zoom.py index 2569e24e8c..10874a20ab 100644 --- a/test/test_zoom.py +++ b/test/test_zoom.py @@ -312,6 +312,49 @@ def test_get_past_webinar_participants(self, m): m.get(ZOOM_URI + "report/webinars/123/participants", json=participants) assert_matching_tables(self.zoom.get_past_webinar_participants(123), tbl) + @requests_mock.Mocker() + def test_get_webinar_report(self, m): + report = { + "custom_keys": [{"key": "Host Nation", "value": "US"}], + "dept": "HR", + "duration": 2, + "end_time": "2022-03-15T07:42:22Z", + "id": 345678902224, + "participants_count": 4, + "start_time": "2022-03-15T07:40:46Z", + "topic": "My Meeting", + "total_minutes": 3, + "tracking_fields": [{"field": "Host Nation", "value": "US"}], + "type": 4, + "user_email": "jchill@example.com", + "user_name": "Jill Chill", + "uuid": "4444AAAiAAAAAiAiAiiAii==", + } + tbl = Table( + [ + { + "custom_keys": [{"key": "Host Nation", "value": "US"}], + "dept": "HR", + "duration": 2, + "end_time": "2022-03-15T07:42:22Z", + "id": 345678902224, + "participants_count": 4, + "start_time": "2022-03-15T07:40:46Z", + "topic": "My Meeting", + "total_minutes": 3, + "tracking_fields": [{"field": "Host Nation", "value": "US"}], + "type": 4, + "user_email": "jchill@example.com", + "user_name": "Jill Chill", + "uuid": "4444AAAiAAAAAiAiAiiAii==", + } + ] + ) + + m.post(ZOOM_AUTH_CALLBACK, json={"access_token": "fakeAccessToken"}) + m.get(ZOOM_URI + "report/webinars/123", json=report) + assert_matching_tables(self.zoom.get_past_webinar_reports(123), tbl) + @requests_mock.Mocker() def test_get_webinar_registrants(self, m): registrants = {