Skip to content

Commit 5fed333

Browse files
authored
Merge pull request #15 from eadwinCode/ninja18.0-support
Ninja18.0 support
2 parents c2132a8 + 7c18f3d commit 5fed333

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

ninja_extra/operation.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,13 @@ def run(self, request: HttpRequest, **kw: Any) -> HttpResponseBase:
155155
return error
156156
try:
157157
with self._prep_run(request, **kw) as ctx:
158-
values = self._get_values(request, kw)
158+
temporal_response = self.api.create_temporal_response(request)
159+
values = self._get_values(request, kw, temporal_response)
159160
ctx.kwargs = values
160161
result = self.view_func(context=ctx, **values)
161-
_processed_results = self._result_to_response(request, result)
162+
_processed_results = self._result_to_response(
163+
request, result, temporal_response
164+
)
162165
return _processed_results
163166
except Exception as e:
164167
if isinstance(e, TypeError) and "required positional argument" in str(e):
@@ -216,9 +219,10 @@ async def run(self, request: HttpRequest, **kw: Any) -> HttpResponseBase: # typ
216219
if error:
217220
return error
218221
try:
219-
values = await self._get_values(request, kw) # type: ignore
222+
temporal_response = self.api.create_temporal_response(request)
223+
values = await self._get_values(request, kw, temporal_response) # type: ignore
220224
result = await self.view_func(request, **values)
221-
_processed_results = await self._result_to_response(request, result) # type: ignore
225+
_processed_results = await self._result_to_response(request, result, temporal_response) # type: ignore
222226
return cast(HttpResponseBase, _processed_results)
223227
except Exception as e:
224228
return self.api.on_exception(request, e)
@@ -262,20 +266,21 @@ async def run(self, request: HttpRequest, **kw: Any) -> HttpResponseBase: # typ
262266
return error
263267
try:
264268
async with self._prep_run(request, **kw) as ctx:
265-
values = await self._get_values(request, kw) # type: ignore
269+
temporal_response = self.api.create_temporal_response(request)
270+
values = await self._get_values(request, kw, temporal_response) # type: ignore
266271
ctx.kwargs = values
267272
result = await self.view_func(context=ctx, **values)
268-
_processed_results = await self._result_to_response(request, result) # type: ignore
273+
_processed_results = await self._result_to_response(request, result, temporal_response) # type: ignore
269274
return cast(HttpResponseBase, _processed_results)
270275
except Exception as e:
271276
return self.api.on_exception(request, e)
272277

273278

274279
class PathView(NinjaPathView):
275-
async def _async_view(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: # type: ignore
280+
async def _async_view(self, request: HttpRequest, *args, **kwargs) -> HttpResponseBase: # type: ignore
276281
return await super(PathView, self)._async_view(request, *args, **kwargs)
277282

278-
def _sync_view(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: # type: ignore
283+
def _sync_view(self, request: HttpRequest, *args, **kwargs) -> HttpResponseBase: # type: ignore
279284
return super(PathView, self)._sync_view(request, *args, **kwargs)
280285

281286
def add_operation(

tests/test_pagination.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def test_case1(self):
9494
"schema": {
9595
"title": "Limit",
9696
"default": 100,
97-
"exclusiveMinimum": 0,
97+
"minimum": 1,
9898
"type": "integer",
9999
},
100100
"required": False,
@@ -105,7 +105,7 @@ def test_case1(self):
105105
"schema": {
106106
"title": "Offset",
107107
"default": 0,
108-
"exclusiveMinimum": -1,
108+
"minimum": 0,
109109
"type": "integer",
110110
},
111111
"required": False,
@@ -132,7 +132,7 @@ def test_case2(self):
132132
"schema": {
133133
"title": "Limit",
134134
"default": 100,
135-
"exclusiveMinimum": 0,
135+
"minimum": 1,
136136
"type": "integer",
137137
},
138138
"required": False,
@@ -143,7 +143,7 @@ def test_case2(self):
143143
"schema": {
144144
"title": "Offset",
145145
"default": 0,
146-
"exclusiveMinimum": -1,
146+
"minimum": 0,
147147
"type": "integer",
148148
},
149149
"required": False,
@@ -213,7 +213,7 @@ def test_case5(self):
213213
"schema": {
214214
"title": "Page",
215215
"default": 1,
216-
"exclusiveMinimum": 0,
216+
"minimum": 1,
217217
"type": "integer",
218218
},
219219
"required": False,
@@ -291,7 +291,7 @@ async def test_case1(self):
291291
"schema": {
292292
"title": "Limit",
293293
"default": 100,
294-
"exclusiveMinimum": 0,
294+
"minimum": 1,
295295
"type": "integer",
296296
},
297297
"required": False,
@@ -302,7 +302,7 @@ async def test_case1(self):
302302
"schema": {
303303
"title": "Offset",
304304
"default": 0,
305-
"exclusiveMinimum": -1,
305+
"minimum": 0,
306306
"type": "integer",
307307
},
308308
"required": False,

0 commit comments

Comments
 (0)