Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/cards/src/microsoft/teams/cards/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,10 @@
Licensed under the MIT License.
"""

from . import actions
from .actions import * # noqa: F403
from .core import *

# Combine all exports from submodules
__all__: list[str] = []
__all__.extend(actions.__all__)
12 changes: 12 additions & 0 deletions packages/cards/src/microsoft/teams/cards/actions/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from .im_back_action import IMBackAction
from .invoke_action import InvokeAction
from .message_back_action import MessageBackAction
from .sign_in_action import SignInAction
from .task_fetch_action import TaskFetchAction

__all__ = ["IMBackAction", "MessageBackAction", "SignInAction", "InvokeAction", "TaskFetchAction"]
15 changes: 15 additions & 0 deletions packages/cards/src/microsoft/teams/cards/actions/im_back_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from ..core import ImBackSubmitActionData, SubmitAction, SubmitActionData


class IMBackAction(SubmitAction):
"""Initial data that input fields will be combined with. These are essentially ‘hidden’ properties."""

def __init__(self, value: str):
super().__init__()
action_data = ImBackSubmitActionData().with_value(value)
self.data = SubmitActionData(ms_teams=action_data.model_dump())
15 changes: 15 additions & 0 deletions packages/cards/src/microsoft/teams/cards/actions/invoke_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from typing import Any, Dict

from ..core import InvokeSubmitActionData, SubmitAction, SubmitActionData


class InvokeAction(SubmitAction):
def __init__(self, value: Dict[str, Any]):
super().__init__()
action_data = InvokeSubmitActionData().with_value(value)
self.data = SubmitActionData(ms_teams=action_data.model_dump())
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from typing import Optional

from ..core import MessageBackSubmitActionData, SubmitAction, SubmitActionData


class MessageBackAction(SubmitAction):
def __init__(self, text: str, value: str, display_text: Optional[str] = None):
super().__init__()
action_data = MessageBackSubmitActionData().with_value(value).with_text(text)

if display_text:
action_data = action_data.with_display_text(display_text)

self.data = SubmitActionData(ms_teams=action_data.model_dump())
13 changes: 13 additions & 0 deletions packages/cards/src/microsoft/teams/cards/actions/sign_in_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from ..core import SigninSubmitActionData, SubmitAction, SubmitActionData


class SignInAction(SubmitAction):
def __init__(self, value: str):
super().__init__()
action_data = SigninSubmitActionData().with_value(value)
self.data = SubmitActionData(ms_teams=action_data.model_dump())
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from typing import Any, Dict

from ..core import SubmitAction, SubmitActionData, TaskFetchSubmitActionData


class TaskFetchAction(SubmitAction):
def __init__(self, value: Dict[str, Any]):
super().__init__()
action_data = TaskFetchSubmitActionData().with_value(value)
self.data = SubmitActionData(ms_teams=action_data.model_dump())
13 changes: 13 additions & 0 deletions packages/cards/tests/test_im_back_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from microsoft.teams.cards import IMBackAction, SubmitActionData


def test_im_back_action_initialization():
action = IMBackAction(value="Test Value")
assert isinstance(action.data, SubmitActionData)
assert action.data.ms_teams is not None
assert action.data.ms_teams["value"] == "Test Value"
13 changes: 13 additions & 0 deletions packages/cards/tests/test_invoke_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from microsoft.teams.cards import InvokeAction, SubmitActionData


def test_invoke_action_initialization():
action = InvokeAction({"test": "Test Value"})
assert isinstance(action.data, SubmitActionData)
assert action.data.ms_teams is not None
assert action.data.ms_teams["value"]["test"] == "Test Value"
15 changes: 15 additions & 0 deletions packages/cards/tests/test_message_back_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from microsoft.teams.cards import MessageBackAction, SubmitActionData


def test_message_back_action_initialization():
action = MessageBackAction(text="Message Back Test", value="Test Value", display_text="Test Text")
assert isinstance(action.data, SubmitActionData)
assert action.data.ms_teams is not None
assert action.data.ms_teams["value"] == "Test Value"
assert action.data.ms_teams["text"] == "Message Back Test"
assert action.data.ms_teams["displayText"] == "Test Text"
13 changes: 13 additions & 0 deletions packages/cards/tests/test_sign_in_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from microsoft.teams.cards import SignInAction, SubmitActionData


def test_sign_in_action_initialization():
action = SignInAction(value="Test Value")
assert isinstance(action.data, SubmitActionData)
assert action.data.ms_teams is not None
assert action.data.ms_teams["value"] == "Test Value"
13 changes: 13 additions & 0 deletions packages/cards/tests/test_task_fetch_action.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.
"""

from microsoft.teams.cards import SubmitActionData, TaskFetchAction


def test_invoke_action_initialization():
action = TaskFetchAction({"test": "Test Value"})
assert isinstance(action.data, SubmitActionData)
assert action.data.ms_teams is not None
assert action.data.ms_teams["value"]["test"] == "Test Value"