Skip to content

Commit 1a09595

Browse files
committed
Add helper functions for creating activity with email response
1 parent 5a91e95 commit 1a09595

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

libraries/microsoft-agents-a365-notifications/microsoft_agents_a365/notifications/agent_notification.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
from collections.abc import Awaitable, Callable, Iterable
44
from typing import Any, TypeVar
55

6-
from microsoft_agents.activity import ChannelId
6+
from microsoft_agents.activity import Activity, ChannelId
77
from microsoft_agents.hosting.core import TurnContext
88
from microsoft_agents.hosting.core.app.state import TurnState
99
from .models.agent_notification_activity import AgentNotificationActivity, NotificationTypes
1010
from .models.agent_subchannel import AgentSubChannel
1111
from .models.agent_lifecycle_event import AgentLifecycleEvent
12+
from .models.email_response import EmailResponse
1213

1314
TContext = TypeVar("TContext", bound=TurnContext)
1415
TState = TypeVar("TState", bound=TurnState)
@@ -181,3 +182,14 @@ def _normalize_lifecycleevent(value: str | AgentLifecycleEvent | None) -> str:
181182
return ""
182183
resolved = value.value if isinstance(value, AgentLifecycleEvent) else str(value)
183184
return resolved.lower().strip()
185+
186+
@staticmethod
187+
def create_email_response_activity(
188+
activity: Activity, email_response_html_body: str
189+
) -> Activity:
190+
working_activity = activity.create_reply()
191+
email_response = EmailResponse(html_body=email_response_html_body)
192+
if working_activity.entities is None:
193+
working_activity.entities = []
194+
working_activity.entities.append(email_response)
195+
return working_activity
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
from typing import Literal
2+
from microsoft_agents.activity.activity import Activity
23
from microsoft_agents.activity.entity import Entity
34

45

56
class EmailResponse(Entity):
67
type: Literal["emailResponse"] = "emailResponse"
78
html_body: str = ""
9+
10+
@staticmethod
11+
def create_email_response_activity(email_response_html_body: str) -> Activity:
12+
working_activity = Activity(type="message")
13+
email_response = EmailResponse(html_body=email_response_html_body)
14+
if working_activity.entities is None:
15+
working_activity.entities = []
16+
working_activity.entities.append(email_response)
17+
return working_activity

0 commit comments

Comments
 (0)