Code: Select all
type: block_actions
container:
type: view
...
Code: Select all
type: block_actions
container:
type: message
...
Code: Select all
type: view_submission
...
Code: Select all
class MessageContainer(BaseModel):
type: Literal["message"]
...
class ViewContainer(BaseModel):
type: Literal["view"]
...
class MessageActions(ActionsBase):
type: Literal["block_actions"]
container: MessageContainer
...
class ViewActions(ActionsBase):
type: Literal["block_actions"]
container: ViewContainer
...
class ViewSubmission(BaseModel):
type: Literal["view_submission"]
...
zu verwenden
Code: Select all
BlockActions = Annotated[
MessageActions | ViewActions,
Field(discriminator="container.type"),
]
SlackInteraction = Annotated[
ViewSubmission | BlockActions,
Field(discriminator="type"),
]
SlackInteractionAdapter = TypeAdapter(SlackInteraction)
Muss ich sie manuell versenden oder gibt es eine Möglichkeit, das Problem mit Pydantic zu lösen?