Spaces:
Sleeping
Sleeping
JerameeUC
12 Commit PyTest Working But Failing for some. The individual sections need to be completed to fix.
0c4f0e3 | # /app/routes.py — HTTP handlers | |
| # routes.py — HTTP handlers (root-level, no /app package) | |
| import json | |
| from aiohttp import web | |
| # from botbuilder.schema import Activity | |
| # Prefer project logic if available | |
| try: | |
| from logic import handle_text as _handle_text # user-defined | |
| except Exception: | |
| from skills import normalize, reverse_text, is_empty | |
| def _handle_text(user_text: str) -> str: | |
| text = (user_text or "").strip() | |
| if not text: | |
| return "Please provide text." | |
| cmd = normalize(text) | |
| if cmd in {"help", "capabilities"}: | |
| return "Try: reverse <text> | or just say anything" | |
| if cmd.startswith("reverse "): | |
| original = text.split(" ", 1)[1] if " " in text else "" | |
| return reverse_text(original) | |
| return f"You said: {text}" | |
| def init_routes(app: web.Application, adapter, bot) -> None: | |
| async def messages(req: web.Request) -> web.Response: | |
| ctype = (req.headers.get("Content-Type") or "").lower() | |
| if "application/json" not in ctype: | |
| return web.Response(status=415, text="Unsupported Media Type: expected application/json") | |
| try: | |
| body = await req.json() | |
| except json.JSONDecodeError: | |
| return web.Response(status=400, text="Invalid JSON body") | |
| activity = Activity().deserialize(body) | |
| auth_header = req.headers.get("Authorization") | |
| invoke_response = await adapter.process_activity(activity, auth_header, bot.on_turn) | |
| if invoke_response: | |
| return web.json_response(data=invoke_response.body, status=invoke_response.status) | |
| return web.Response(status=202, text="Accepted") | |
| async def messages_get(_req: web.Request) -> web.Response: | |
| return web.Response( | |
| text="This endpoint only accepts POST (Bot Framework activities).", | |
| content_type="text/plain", | |
| status=405 | |
| ) | |
| async def home(_req: web.Request) -> web.Response: | |
| return web.Response( | |
| text="Bot is running. POST Bot Framework activities to /api/messages.", | |
| content_type="text/plain" | |
| ) | |
| async def healthz(_req: web.Request) -> web.Response: | |
| return web.json_response({"status": "ok"}) | |
| async def plain_chat(req: web.Request) -> web.Response: | |
| try: | |
| payload = await req.json() | |
| except Exception: | |
| return web.json_response({"error": "Invalid JSON"}, status=400) | |
| user_text = payload.get("text", "") | |
| reply = _handle_text(user_text) | |
| return web.json_response({"reply": reply}) | |
| # Wire routes | |
| app.router.add_get("/", home) | |
| app.router.add_get("/healthz", healthz) | |
| app.router.add_get("/api/messages", messages_get) | |
| app.router.add_post("/api/messages", messages) | |
| app.router.add_post("/plain-chat", plain_chat) | |