Skip to content

Commit d3b8613

Browse files
authored
Merge pull request #5 from dotX12/dev-1.0
* Added support legacy syntax
2 parents 77ab467 + 8f00519 commit d3b8613

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

examples/main.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
from fastapi import File
33
from fastapi import UploadFile
44

5-
from examples.models import PostContractBodySchema, ExampleSchemaForHeader
5+
from examples.models import PostContractBodySchema, ExampleSchemaForHeader, PostContractBodySchemaOldSupport
66
from examples.models import PostContractJSONSchema
77
from examples.models import PostContractSmallDoubleBodySchema
88
from examples.models import PostContractSmallDoubleQuerySchema
9-
from pyfa_converter.depends import QueryDepends, FormDepends, PyFaDepends
9+
from pyfa_converter.depends import QueryDepends, FormDepends, PyFaDepends, FormBody
1010

1111
app = FastAPI()
1212

@@ -66,3 +66,12 @@ async def test_list_form(
6666
):
6767
print(data.strange_header)
6868
return {"data": data}
69+
70+
71+
@app.post("/form-data-body-old-support")
72+
async def example_foo_body_handler(
73+
data: PostContractBodySchemaOldSupport = FormBody(PostContractBodySchemaOldSupport),
74+
document: UploadFile = File(...),
75+
):
76+
return {"title": data.title, "date": data.date, "file_name": document.filename}
77+

examples/models.py

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from pydantic import Field
88
from pydantic import validator
99

10+
from pyfa_converter import PydanticConverter
11+
1012

1113
class PostContractJSONSchema(BaseModel):
1214
title: str = Field(..., description="Description title")
@@ -53,3 +55,8 @@ class ExampleSchemaForHeader(BaseModel):
5355
query: str = Field(...)
5456
form: str = Field(...)
5557
body: str = Field(...)
58+
59+
60+
@PydanticConverter.body
61+
class PostContractBodySchemaOldSupport(PostContractJSONSchema):
62+
pass

pyfa_converter/__init__.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
from .main import PydanticConverter
2-
from .depends import FormDepends, QueryDepends
2+
from .depends import FormDepends, QueryDepends, BodyDepends, PyFaDepends, QueryBody, FormBody
33

44
__all__ = (
55
"PydanticConverter",
66
"FormDepends",
77
"QueryDepends",
8+
"PyFaDepends",
9+
"BodyDepends",
10+
"FormBody",
11+
"QueryBody",
12+
813
)

pyfa_converter/depends.py

+10
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,13 @@ class QueryDepends(PyFaDepends):
4747

4848
def __new__(cls, model_type: Type[BaseModel | PydanticConverter]):
4949
return super().generate(model=model_type, _type=cls._TYPE)
50+
51+
52+
class FormBody:
53+
def __new__(cls, model_type: Type[BaseModel | PydanticConverter]):
54+
return Depends(model_type.body)
55+
56+
57+
class QueryBody:
58+
def __new__(cls, model_type: Type[BaseModel | PydanticConverter]):
59+
return Depends(model_type.query)

0 commit comments

Comments
 (0)