Skip to content

Commit fa0cb01

Browse files
committed
Added some context to IResponseModel
1 parent 0cdf953 commit fa0cb01

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

ellar/core/response/model/base.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,13 @@ def serialize(
6464

6565

6666
class BaseResponseModel(IResponseModel, ABC):
67-
__slots__ = ("_response_type", "media_type", "description", "meta", "_model_field")
67+
__slots__ = (
68+
"_response_type",
69+
"_media_type",
70+
"_description",
71+
"meta",
72+
"_model_field",
73+
)
6874

6975
response_type: t.Type[Response] = Response
7076
model_field_or_schema: t.Union[ResponseModelField, t.Any] = None
@@ -78,13 +84,21 @@ def __init__(
7884
self._response_type: t.Type[Response] = t.cast(
7985
t.Type[Response], kwargs.get("response_type") or self.response_type
8086
)
81-
self.media_type = str(
87+
self._media_type = str(
8288
kwargs.get("media_type") or self._response_type.media_type
8389
)
84-
self.description = description
90+
self._description = description
8591
self.meta = kwargs
8692
self._model_field = self._get_model_field_from_schema(model_field_or_schema)
8793

94+
@property
95+
def media_type(self) -> str:
96+
return self._media_type
97+
98+
@property
99+
def description(self) -> str:
100+
return self._description
101+
88102
def _get_model_field_from_schema(
89103
self, model_field_or_schema: t.Optional[t.Union[ResponseModelField, t.Any]]
90104
) -> t.Optional[ResponseModelField]:

ellar/core/response/model/interface.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,13 @@
1111
class IResponseModel(ABC):
1212
# TODO: abstract to a interface package
1313

14-
media_type: str
15-
description: str
14+
@property
15+
def media_type(self) -> str:
16+
return "text/plain"
17+
18+
@property
19+
def description(self) -> str:
20+
return ""
1621

1722
@abstractmethod
1823
def get_model_field(self) -> t.Optional[t.Union[ModelField, t.Any]]:

ellar/core/response/model/json.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def serialize(
6161
serializer_filter: t.Optional[SerializerFilter] = None,
6262
) -> t.Union[t.List[t.Dict], t.Dict, t.Any]:
6363
try:
64-
# try an serialize object
64+
# try a serialize object
6565
return serialize_object(response_obj, serializer_filter=serializer_filter)
6666
except Exception:
6767
"""Failed to auto serialize object"""

0 commit comments

Comments
 (0)