from modules.database import DatabaseManager from botbuilder.core import TurnContext, CardFactory, MessageFactory from botbuilder.schema import Attachment, Activity, ActivityTypes, ConversationParameters from aiohttp.web import Response, json_response import json from modules.template import TemplateEngine class TestCommand: def __init__(self, database: DatabaseManager): self.database = database async def handle_test(self, turn_context: TurnContext, message: str) -> None: try: activity = turn_context.activity # conversation_reference = TurnContext.get_conversation_reference(turn_context.activity) # Check if the channel is a Microsoft Teams channel (msteams) or emulator (for testing) channel_id_str = activity.channel_id channel_data = activity.channel_data # channel_data is a dictionary, access it as such teams_id = channel_data.get('teamsTeamId') if channel_data and isinstance(channel_data, dict) else None microsoft_channel_id_str = channel_data.get('teamsChannelId') if channel_data and isinstance(channel_data, dict) else None if channel_id_str == "emulator": teams_id = "00000000-0000-0000-0000-000000000000" microsoft_channel_id_str = "00000000-0000-0000-0000-000000000000" # Load template and prepare data template = TemplateEngine("card") # Create and send the Adaptive Card card_attachment = CardFactory.adaptive_card(template.generate({"card_type": "Test", "card_title": "Test", "card_content": message})) # Send the attachment as a reply to the post in the channel result = await turn_context.send_activity(MessageFactory.attachment(card_attachment)) except Exception as e: import traceback traceback.print_exc() raise