Skip to content

Commit 7399992

Browse files
authored
Merge pull request #231 from Tatsh/route-info-schema-out
Allow customisation of schema_out in route_info dicts
2 parents fe02b1e + 3b48be2 commit 7399992

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

docs/api_controller/model_controller/02_model_configuration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ class EventModelController(ModelControllerBase):
148148
"summary": "List all events",
149149
"description": "Retrieves a paginated list of all events",
150150
"tags": ["events"],
151+
"schema_out": CustomListSchema,
151152
},
152153
find_one_route_info={
153154
"summary": "Get event details",

ninja_extra/controllers/model/builder.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def _register_create_endpoint(self) -> None:
6060
kw.update(self._config.create_route_info)
6161
create_item = self._route_factory.create(
6262
schema_in=self._create_schema, # type:ignore[arg-type]
63-
schema_out=self._retrieve_schema, # type:ignore[arg-type]
63+
schema_out=kw.pop('schema_out', self._retrieve_schema), # type:ignore[arg-type]
6464
**kw, # type:ignore[arg-type]
6565
)
6666

@@ -82,7 +82,7 @@ def _register_update_endpoint(self) -> None:
8282
path=_path,
8383
lookup_param=self._model_pk_name,
8484
schema_in=self._update_schema, # type:ignore[arg-type]
85-
schema_out=self._retrieve_schema, # type:ignore[arg-type]
85+
schema_out=kw.pop('schema_out', self._retrieve_schema), # type:ignore[arg-type]
8686
**kw, # type:ignore[arg-type]
8787
)
8888

@@ -105,7 +105,7 @@ def _register_patch_endpoint(self) -> None:
105105
patch_item = self._route_factory.patch(
106106
path=_path,
107107
lookup_param=self._model_pk_name,
108-
schema_out=self._retrieve_schema, # type:ignore[arg-type]
108+
schema_out=kw.pop('schema_out', self._retrieve_schema), # type:ignore[arg-type]
109109
schema_in=self._patch_schema, # type:ignore[arg-type]
110110
**kw, # type:ignore[arg-type]
111111
)
@@ -154,7 +154,7 @@ def _register_list_endpoint(self) -> None:
154154

155155
list_items = self._route_factory.list(
156156
path="/",
157-
schema_out=self._retrieve_schema, # type:ignore[arg-type]
157+
schema_out=kw.pop('schema_out', self._retrieve_schema), # type:ignore[arg-type]
158158
**kw, # type:ignore[arg-type]
159159
**paginate_kwargs,
160160
)

0 commit comments

Comments
 (0)