8000 fix async await issues in teams_info (#485) · guptarohan41/botbuilder-python@6be6508 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6be6508

Browse files
Eric DahlvangVirtual-Josh
Eric Dahlvang
authored andcommitted
fix async await issues in teams_info (microsoft#485)
1 parent dfaf3e8 commit 6be6508

File tree

3 files changed

+21
-23
lines changed

3 files changed

+21
-23
lines changed

libraries/botbuilder-core/botbuilder/core/teams/teams_info.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515

1616
class TeamsInfo:
1717
@staticmethod
18-
def get_team_details(turn_context: TurnContext, team_id: str = "") -> TeamDetails:
18+
async def get_team_details(
19+
turn_context: TurnContext, team_id: str = ""
20+
) -> TeamDetails:
1921
if not team_id:
2022
team_id = TeamsInfo.get_team_id(turn_context)
2123

@@ -24,12 +26,11 @@ def get_team_details(turn_context: TurnContext, team_id: str = "") -> TeamDetail
2426
"TeamsInfo.get_team_details: method is only valid within the scope of MS Teams Team."
2527
)
2628

27-
return TeamsInfo.get_teams_connector_client(
28-
turn_context
29-
).teams.get_team_details(team_id)
29+
teams_connector = await TeamsInfo.get_teams_connector_client(turn_context)
30+
return teams_connector.teams.get_team_details(team_id)
3031

3132
@staticmethod
32-
def get_team_channels(
33+
async def get_team_channels(
3334
turn_context: TurnContext, team_id: str = ""
3435
) -> List[ChannelInfo]:
3536
if not team_id:
@@ -40,11 +41,8 @@ def get_team_channels(
4041
"TeamsInfo.get_team_channels: method is only valid within the scope of MS Teams Team."
4142
)
4243

43-
return (
44-
TeamsInfo.get_teams_connector_client(turn_context)
45-
.teams.get_teams_channels(team_id)
46-
.conversations
47-
)
44+
teams_connector = await TeamsInfo.get_teams_connector_client(turn_context)
45+
return teams_connector.teams.get_teams_channels(team_id).conversations
4846

4947
@staticmethod
5048
async def get_team_members(turn_context: TurnContext, team_id: str = ""):
@@ -56,25 +54,26 @@ async def get_team_members(turn_context: TurnContext, team_id: str = ""):
5654
"TeamsInfo.get_team_members: method is only valid within the scope of MS Teams Team."
5755
)
5856

57+
connector_client = await TeamsInfo._get_connector_client(turn_context)
5958
return await TeamsInfo._get_members(
60-
TeamsInfo._get_connector_client(turn_context),
61-
turn_context.activity.conversation.id,
59+
connector_client, turn_context.activity.conversation.id,
6260
)
6361

6462
@staticmethod
6563
async def get_members(turn_context: TurnContext) -> List[TeamsChannelAccount]:
6664
team_id = TeamsInfo.get_team_id(turn_context)
6765
if not team_id:
6866
conversation_id = turn_context.activity.conversation.id
69-
return await TeamsInfo._get_members(
70-
TeamsInfo._get_connector_client(turn_context), conversation_id
71-
)
67+
connector_client = await TeamsInfo._get_connector_client(turn_context)
68+
return await TeamsInfo._get_members(connector_client, conversation_id)
7269

7370
return await TeamsInfo.get_team_members(turn_context, team_id)
7471

7572
@staticmethod
76-
def get_teams_connector_client(turn_context: TurnContext) -> TeamsConnectorClient:
77-
connector_client = TeamsInfo._get_connector_client(turn_context)
73+
async def get_teams_connector_client(
74+
turn_context: TurnContext,
75+
) -> TeamsConnectorClient:
76+
connector_client = await TeamsInfo._get_connector_client(turn_context)
7877
return TeamsConnectorClient(
7978
connector_client.config.credentials, turn_context.activity.service_url
8079
)
@@ -86,13 +85,12 @@ def get_teams_connector_client(turn_context: TurnContext) -> TeamsConnectorClien
8685
def get_team_id(turn_context: TurnContext):
8786
channel_data = TeamsChannelData(**turn_context.activity.channel_data)
8887
if channel_data.team:
89-
# urllib.parse.quote_plus(
9088
return channel_data.team["id"]
9189
return ""
9290

9391
@staticmethod
94-
def _get_connector_client(turn_context: TurnContext) -> ConnectorClient:
95-
return turn_context.adapter.create_connector_client(
92+
async def _get_connector_client(turn_context: TurnContext) -> ConnectorClient:
93+
return await turn_context.adapter.create_connector_client(
9694
turn_context.activity.service_url
9795
)
9896

scenarios/mentions/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
# Catch-all for errors.
3131
async def on_error( # pylint: disable=unused-argument
32-
context: TurnContext, error: Exception
32+
self, context: TurnContext, error: Exception
3333
):
3434
# This check writes out errors to console log .vs. app insights.
3535
# NOTE: In production environment, you should consider logging this to Azure

scenarios/roster/bots/roster_bot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ async def _show_members(
4343
async def _show_channels(
4444
self, turn_context: TurnContext
4545
):
46-
channels = TeamsInfo.get_team_channels(turn_context)
46+
channels = await TeamsInfo.get_team_channels(turn_context)
4747
reply = MessageFactory.text(f"Total of {len(channels)} channels are currently in team")
4848
await turn_context.send_activity(reply)
4949
messages = list(map(lambda c: (f'{c.id} --> {c.name}'), channels))
5050
await self._send_in_batches(turn_context, messages)
5151

5252
async def _show_details(self, turn_context: TurnContext):
53-
team_details = TeamsInfo.get_team_details(turn_context)
53+
team_details = await TeamsInfo.get_team_details(turn_context)
5454
reply = MessageFactory.text(f"The team name is {team_details.name}. The team ID is {team_details.id}. The AADGroupID is {team_details.aad_group_id}.")
5555
await turn_context.send_activity(reply)
5656

0 commit comments

Comments
 (0)
0