8000 aiohttp channel service, conversation methods pending · snifhex/botbuilder-python@691ab59 · GitHub
[go: up one dir, main page]

Skip to content

Commit 691ab59

Browse files
committed
aiohttp channel service, conversation methods pending
1 parent db6066d commit 691ab59
8000

File tree

3 files changed

+91
-1
lines changed

3 files changed

+91
-1
lines changed

libraries/botbuilder-core/botbuilder/core/integration/__init__.py

Whitespace-only changes.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
# Licensed under the MIT License.
3+
4+
from aiohttp.web import RouteTableDef, Request, Response
5+
6+
from botbuilder.schema import Activity
7+
8+
from .channel_service_handler import ChannelServiceHandler
9+
10+
async def deserialize_activity(request: Request) -> Activity:
11+
if "application/json" in request.headers["Content-Type"]:
12+
body = await request.json()
13+
else:
14+
return Response(status=415)
15+
16+
return Activity().deserialize(body)
17+
18+
def channel_service_routes(handler: ChannelServiceHandler) -> RouteTableDef:
19+
routes = RouteTableDef()
20+
21+
@routes.post("/{conversation_id}/activities")
22+
async def send_to_conversation(request: Request):
23+
activity = await deserialize_activity(request)
24+
return await handler.handle_send_to_conversation(
25+
request.headers.get("Authorization"),
26+
request.match_info["conversation_id"],
27+
activity
28+
)
29+
30+
@routes.post("/{conversation_id}/activities/{activity_id}")
31+
async def reply_to_activity(request: Request):
32+
activity = await deserialize_activity(request)
33+
return await handler.handle_reply_to_activity(
34+
request.headers.get("Authorization"),
35+
request.match_info["conversation_id"],
36+
request.match_info["activity_id"],
37+
activity
38+
)
39+
40+
@routes.put("/{conversation_id}/activities/{activity_id}")
41+
async def update_activity(request: Request):
42+
activity = await deserialize_activity(request)
43+
return await handler.handle_update_activity(
44+
request.headers.get("Authorization"),
45+
request.match_info["conversation_id"],
46+
request.match_info["activity_id"],
47+
activity
48+
)
49+
50+
@routes.delete("/{conversation_id}/activities/{activity_id}")
51+
async def delete_activity(request: Request):
52+
return await handler.handle_delete_activity(
53+
request.headers.get("Authorization"),
54+
request.match_info["conversation_id"],
55+
request.match_info["activity_id"]
56+
)
57+
58+
@routes.get("/{conversation_id}/activities/{activity_id}/members")
59+
async def get_activity_members(request: Request):
60+
raise NotImplementedError("get_activity_members is not supported")
61+
62+
@routes.post("/")
63+
async def create_conversation(request: Request):
64+
raise NotImplementedError("create_conversation is not supported")
65+
66+
@routes.get("/")
67+
async def get_conversation(request: Request):
68+
raise NotImplementedError("get_conversation is not supported")
69+
70+
@routes.get("/{conversation_id}/members")
71+
async def get_conversation_members(request: Request):
72+
raise NotImplementedError("get_activity_members is not supported")
73+
74+
@routes.get("/{conversation_id}/pagedmembers")
75+
async def get_conversation_paged_members(request: Request):
76+
raise NotImplementedError("get_conversation_paged_members is not supported")
77+
78+
@routes.delete("/{conversation_id}/members/{member_id}")
79+
async def delete_conversation_members(request: Request):
80+
raise NotImplementedError("delete_conversation_members is not supported")
81+
82+
@routes.post("/{conversation_id}/activities/history")
83+
async def get_conversation_history(request: Request):
84+
raise NotImplementedError("get_conversation_history is not supported")
85+
86+
@routes.post("/{conversation_id}/attachments")
87+
async def upload_attachment(request: Request):
88+
raise NotImplementedError("upload_attachment is not supported")
89+
90+
return routes

libraries/botbuilder-core/botbuilder/core/integration/channel_service_handler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ async def _authenticate(self, auth_header: str) -> ClaimsIdentity:
449449
return await JwtTokenValidation.validate_auth_header(
450450
auth_header,
451451
self._credential_provider,
452-
self._channel_provider,
452+
self._channel_provider.channel_service,
453453
"unknown",
454454
self._auth_config,
455455
)

0 commit comments

Comments
 (0)
0