Skip to content

Commit f5eee90

Browse files
committed
refactor(python): extract code shared between post/put/delete
1 parent db0be3e commit f5eee90

File tree

1 file changed

+9
-13
lines changed

1 file changed

+9
-13
lines changed

src/templates/routes.py.ejs

+9-13
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ endpoints.forEach(function(endpoint) {
207207
// LATER: add support for aggregated_queries (#17)
208208
const argsFromQuery = method.query ? extractParamsFromQuery(method.query).map(stipOurPrefixes) : []
209209
210+
// define before "if", to make them available later
211+
let sql
212+
let formattedParams
213+
if (method.name === 'post' || method.name === 'put' || method.name === 'delete') {
214+
sql = convertToPsycopgNamedArguments(formatQueryForPython(method.query, 20))
215+
const params = extractParamsFromQuery(method.query)
216+
formattedParams = formatParamsAsPythonDict(params)
217+
}
218+
210219
if (hasGetOne || hasGetMany) {
211220
const methodArgs = Array.from(new Set([...argsFromPath, ...argsFromQuery, 'conn=Depends(db_connection)']))
212221
@@ -276,11 +285,6 @@ def <%- pythonMethodName %>(<%- methodArgs.join(', ') %>):
276285
const dto = query2dto(sqlParser, method)
277286
// LATER: do we really need signature and cache?
278287
const model = obtainDtoName(dto)
279-
280-
const sql = convertToPsycopgNamedArguments(formatQueryForPython(method.query, 20))
281-
const params = extractParamsFromQuery(method.query)
282-
const formattedParams = formatParamsAsPythonDict(params)
283-
284288
%>
285289
286290
@router.post('<%- path %>', status_code=status.HTTP_204_NO_CONTENT)
@@ -302,10 +306,6 @@ def <%- pythonMethodName %>(body: <%- model %>, conn=Depends(db_connection)):
302306
const model = obtainDtoName(dto)
303307
304308
const methodArgs = [ `body: ${model}`, ...argsFromPath, 'conn=Depends(db_connection)' ]
305-
306-
const sql = convertToPsycopgNamedArguments(formatQueryForPython(method.query, 20))
307-
const params = extractParamsFromQuery(method.query)
308-
const formattedParams = formatParamsAsPythonDict(params)
309309
%>
310310
311311
@router.put('<%- path %>', status_code=status.HTTP_204_NO_CONTENT)
@@ -321,10 +321,6 @@ def <%- pythonMethodName %>(<%- methodArgs.join(', ') %>):
321321
}
322322
if (method.name === 'delete') {
323323
const methodArgs = [ ...argsFromPath, 'conn=Depends(db_connection)' ]
324-
325-
const sql = convertToPsycopgNamedArguments(formatQueryForPython(method.query, 20))
326-
const params = extractParamsFromQuery(method.query)
327-
const formattedParams = formatParamsAsPythonDict(params)
328324
%>
329325
330326
@router.delete('<%- path %>', status_code=status.HTTP_204_NO_CONTENT)

0 commit comments

Comments
 (0)