in ees_microsoft_teams/microsoft_teams_channels.py [0:0]
def get_team_channels(self, teams, ids_list):
""" Fetches all the team channels from the Microsoft Teams
:param teams: List of dictionaries containing the team details
:param ids_list: Shared storage for storing the document ids
Returns:
documents_with_teams: List of dictionaries containing the team channel details
documents: Documents to be indexed in Workplace Search
"""
documents = []
documents_with_teams = []
for team in teams:
team_id = team["id"]
team_name = team["title"]
self.logger.info(f"Fetching channels for team: {team_name}")
response = self.client.get_channels(
next_url=f"{constant.GRAPH_BASE_URL}/teams/{team_id}/channels"
)
if not response:
continue
channel_schema = get_schema_fields("channels", self.object_type_to_index)
channels_by_team = {team_id: []}
for channel in response:
# Logic to append channels for deletion
self.local_storage.insert_document_into_doc_id_storage(
ids_list, channel["id"], constant.CHANNELS, team_id, ""
)
channel_data = {"type": constant.CHANNELS}
for workplace_search_field, microsoft_teams_field in channel_schema.items():
channel_data[workplace_search_field] = channel[microsoft_teams_field]
channel_data["_allow_permissions"] = []
if self.is_permission_sync_enabled:
channel_data["_allow_permissions"] = [team_id]
documents.append(channel_data)
channels_by_team[team_id].append(channel_data)
documents_with_teams.append(channels_by_team)
return documents_with_teams, documents