Skip to content

Commit ccb5c76

Browse files
committed
feat(python): specify variable type for query parameters
Part of #53
1 parent 940643f commit ccb5c76

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

examples/python/fastapi/postgres/routes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def post_v1_categories(body: CreateCategoryDto, conn=Depends(db_connection)):
134134

135135

136136
@router.get('/v1/categories/search')
137-
def get_list_v1_categories_search(hidden, conn=Depends(db_connection)):
137+
def get_list_v1_categories_search(hidden: bool, conn=Depends(db_connection)):
138138
try:
139139
with conn:
140140
with conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) as cur:

src/templates/routes.py.ejs

+14-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,18 @@ function findOutType(fieldsInfo, fieldName) {
8585
return 'str'
8686
}
8787
88+
// "q.title" => "q.title: str"
89+
// "q.active" => "q.active: bool"
90+
// "q.age" => "q.age: int"
91+
// "p.id" => "p.id"
92+
// "b.name" => "b.name"
93+
function appendVariableTypeToQueryParam(paramsInfo, varName) {
94+
if (varName.startsWith('q.')) {
95+
return `${varName}: ${findOutType(paramsInfo, stipOurPrefixes(varName))}`
96+
}
97+
return varName
98+
}
99+
88100
// LATER: reduce duplication with routes.go.ejs
89101
function addTypes(props, fieldsInfo) {
90102
return props.map(prop => {
@@ -187,7 +199,8 @@ endpoints.forEach(function(endpoint) {
187199
const pythonMethodName = generate_method_name(method.name, path)
188200
189201
// LATER: add support for aggregated_queries (#17)
190-
const argsFromQuery = method.query ? extractParamsFromQuery(method.query).map(stipOurPrefixes) : []
202+
const queryParamsInfo = method.params && method.params.query ? method.params.query : {}
203+
const argsFromQuery = method.query ? extractParamsFromQuery(method.query).map(param => appendVariableTypeToQueryParam(queryParamsInfo, param)).map(stipOurPrefixes) : []
191204
192205
// define before "if", to make them available later
193206
let methodArgs

0 commit comments

Comments
 (0)