From a8751c6022e3634fcb5267e9cd42df520af56ff9 Mon Sep 17 00:00:00 2001 From: Austin Weisgrau Date: Thu, 11 Jul 2024 16:28:47 -0700 Subject: [PATCH 1/2] Enable date filter on Zoom get_meetings method --- parsons/zoom/zoom.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/parsons/zoom/zoom.py b/parsons/zoom/zoom.py index 528426ee8e..8918c02808 100644 --- a/parsons/zoom/zoom.py +++ b/parsons/zoom/zoom.py @@ -1,5 +1,7 @@ +import datetime import logging import uuid +from typing import Dict, Literal, Optional from parsons import Table from parsons.utilities import check_env @@ -164,7 +166,15 @@ def get_users(self, status="active", role_id=None): logger.info(f"Retrieved {tbl.num_rows} users.") return tbl - def get_meetings(self, user_id, meeting_type="scheduled"): + def get_meetings( + self, + user_id, + meeting_type: Literal[ + "scheduled", "live", "upcoming", "upcoming_meetings", "previous_meetings" + ] = "scheduled", + from_date: Optional[datetime.date] = None, + to_date: Optional[datetime.date] = None, + ): """ Get meetings scheduled by a user. @@ -192,8 +202,13 @@ def get_meetings(self, user_id, meeting_type="scheduled"): Parsons Table See :ref:`parsons-table` for output options. """ + params: Dict[str, str] = {"type": meeting_type} + if from_date: + params["from"] = from_date.isoformat() + if to_date: + params["to"] = to_date.isoformat() - tbl = self._get_request(f"users/{user_id}/meetings", "meetings") + tbl = self._get_request(f"users/{user_id}/meetings", "meetings", params=params) logger.info(f"Retrieved {tbl.num_rows} meetings.") return tbl From 928eafd69b5e99a859d289a140956c7c3c161d5f Mon Sep 17 00:00:00 2001 From: Austin Weisgrau Date: Thu, 10 Oct 2024 08:38:15 -0700 Subject: [PATCH 2/2] Add documentation on new parameters --- parsons/zoom/zoom.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parsons/zoom/zoom.py b/parsons/zoom/zoom.py index 8918c02808..6e3220e7a8 100644 --- a/parsons/zoom/zoom.py +++ b/parsons/zoom/zoom.py @@ -198,6 +198,10 @@ def get_meetings( - All the ongoing meetings. * - ``upcoming`` - All upcoming meetings including live meetings. + from_date: datetime.date or None + Optional start date for the range of meetings to retrieve. + to_date: datetime.date or None + Optional end date for the range of meetings to retrieve. `Returns:` Parsons Table See :ref:`parsons-table` for output options.