43 lines
1.9 KiB
Python
43 lines
1.9 KiB
Python
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
|