in ees_microsoft_teams/microsoft_teams_client.py [0:0]
def get_channel_messages(self, next_url, start_time, end_time, channel_name="", is_message_replies=False):
""" Get channel messages from the Microsoft Teams with the support of pagination and
filtration.
:param next_url: URL to invoke Graph API call
:param start_time: Starting time to fetch channel messages
:param end_time: Ending time to fetch channel messages
:param channel_name: Channel for fetching messages
:param is_message_replies: Flag to check if method is used for fetching message replies
"""
response_list = {"value": []}
while next_url:
try:
query = self.query_builder.get_query_for_channel_and_chat_messages().strip()
url = f"{next_url}{query}"
response_json = self.get(url=url, object_type=constant.CHANNEL_MESSAGES)
# Filter response based on lastModifiedDateTime
response_value = response_json.get("value")
if response_value:
for message in response_value:
last_modified_date_time = message.get("lastModifiedDateTime")
if start_time <= last_modified_date_time <= end_time:
response_list["value"].append(message)
next_url = response_json.get("@odata.nextLink")
if not next_url or next_url == url:
next_url = None
except Exception as unknown_exception:
self.logger.exception(f"Error while fetching channel messages from the Microsoft Teams. "
f"Error: {unknown_exception}")
if is_message_replies:
return response_list
parsed_response = get_data_from_http_response(
logger=self.logger,
response=response_list,
error_message=f"Could not fetch the messages for channel: {channel_name}",
exception_message=f"Error while fetching the messages for channel: {channel_name}"
)
return parsed_response