Holds one or more ErrorMessageModel entries produced by an
ErrorPresenter.
Multiple entries coexist when a single operation results in several
validation or business-rule failures.
Example
from forging_blocks.presentation.errors import ErrorMessageModel, ErrorViewModel
msg1 = ErrorMessageModel(title="Name is required", field="name")
msg2 = ErrorMessageModel(title="Email is invalid", field="email")
view = ErrorViewModel(messages=(msg1, msg2))
assert len(view.messages) == 2
assert view.messages[0].title == "Name is required"
Source code in src/forging_blocks/presentation/errors/error_view_model.py
| @auto_hash
@auto_freeze
@dataclass
class ErrorViewModel:
"""Holds one or more ``ErrorMessageModel`` entries produced by an
``ErrorPresenter``.
Multiple entries coexist when a single operation results in several
validation or business-rule failures.
Example:
```python
from forging_blocks.presentation.errors import ErrorMessageModel, ErrorViewModel
msg1 = ErrorMessageModel(title="Name is required", field="name")
msg2 = ErrorMessageModel(title="Email is invalid", field="email")
view = ErrorViewModel(messages=(msg1, msg2))
assert len(view.messages) == 2
assert view.messages[0].title == "Name is required"
```
"""
messages: tuple[ErrorMessageModel, ...] = field(default_factory=tuple[ErrorMessageModel])
def __post_init__(self) -> None:
"""Ensure ``messages`` is stored as an immutable tuple."""
self.messages = tuple(self.messages)
|
__post_init__() -> None
Ensure messages is stored as an immutable tuple.
Source code in src/forging_blocks/presentation/errors/error_view_model.py
| def __post_init__(self) -> None:
"""Ensure ``messages`` is stored as an immutable tuple."""
self.messages = tuple(self.messages)
|