Skip to content

Commit 238f6c3

Browse files
authored
Merge pull request #2 from lazy-labs/0.0.14
v0.0.14
2 parents 700a322 + ab5a9ca commit 238f6c3

File tree

5 files changed

+17
-14
lines changed

5 files changed

+17
-14
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ venv.bak/
9494
.spyderproject
9595
.spyproject
9696

97+
#Visual Code Settings
98+
.vscode
99+
97100
# Rope project settings
98101
.ropeproject
99102

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ from typing import Optional
2222

2323
from marshmallow import Schema, fields, post_load, ValidationError
2424
from starlette.applications import Starlette
25-
from starlette.responses import UJSONResponse
25+
from starlette.responses import JSONResponse
2626

2727
from star_resty import Method, Operation, endpoint, json_schema, query, setup_spec
2828

@@ -50,7 +50,7 @@ app = Starlette(debug=True)
5050

5151
@app.exception_handler(ValidationError)
5252
def register_error(request, e: ValidationError):
53-
return UJSONResponse(e.normalized_messages(), status_code=400)
53+
return JSONResponse(e.normalized_messages(), status_code=400)
5454

5555

5656
@app.route('/echo')
@@ -59,8 +59,8 @@ class Echo(Method):
5959
meta = Operation(tag='default',
6060
description='echo')
6161
response_schema = EchoInput
62-
6362
async def execute(self, query_params: query(EchoInput)):
63+
self.status_code = 201 # Configurable Respone Http Status Code
6464
return query_params
6565

6666

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def get_packages(package):
2929
'starlette<1',
3030
'apispec<4',
3131
],
32-
version='0.0.13',
32+
version='0.0.14',
3333
url='https://github.com/slv0/start_resty',
3434
license='BSD',
3535
description='The web framework',

star_resty/method/method.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ async def execute(self, *args, **kwargs):
3434
async def dispatch(self) -> Response:
3535
params = await self.__parser__.parse(self.request)
3636
content = await self.execute(**params)
37-
return self.__render__(content)
37+
return self.__render__(content, self)
3838

3939
@classmethod
4040
def as_endpoint(cls):

star_resty/method/render.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ def create_render(method) -> 'Render':
2222
if response_schema is not None:
2323
if inspect.isclass(response_schema):
2424
response_schema = response_schema()
25-
renders.append(dump_content(response_schema))
25+
renders.append(dump_content(response_schema, None))
2626

2727
serializer = getattr(method, 'serializer', None)
2828
if serializer is not None:
29-
renders.append(render_bytes(serializer, method.status_code or 200))
29+
renders.append(render_bytes(serializer, method))
3030

3131
return Render(renders)
3232

@@ -37,24 +37,24 @@ class Render:
3737
def __init__(self, renders: Sequence):
3838
self._renders = renders
3939

40-
def __call__(self, content: Any):
40+
def __call__(self, content: Any, method):
4141
for r in self._renders:
42-
content = r(content)
42+
content = r(content, method)
4343

4444
return content
4545

4646

47-
def render_bytes(serializer, status_code):
48-
def render(content):
47+
def render_bytes(serializer, method):
48+
def render(content, method):
4949
return Response(serializer.render(content),
5050
media_type=serializer.media_type,
51-
status_code=status_code)
51+
status_code=method.status_code)
5252

5353
return render
5454

5555

56-
def dump_content(response_schema: Schema) -> Callable:
57-
def dump(content):
56+
def dump_content(response_schema: Schema, _) -> Callable:
57+
def dump(content, _):
5858
try:
5959
return response_schema.dump(content)
6060
except MarshmallowError as e:

0 commit comments

Comments
 (0)