Skip to content

Commit 98a1ed3

Browse files
committed
refactor(python): modify formatParamsAsPythonDict() to work with path and query parameters
1 parent 7e7abcf commit 98a1ed3

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/cli.js

+18-4
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,12 @@ const createEndpoints = async (destDir, { lang }, config) => {
197197
'q': function(param) {
198198
return `r.URL.Query().Get("${param}")`
199199
},
200-
}
200+
},
201+
'py': {
202+
'p': '',
203+
'b': 'body.',
204+
'q': '',
205+
},
201206
}
202207

203208
const parser = new Parser()
@@ -275,9 +280,18 @@ const createEndpoints = async (destDir, { lang }, config) => {
275280
// [ "p.categoryId" ] => ', {"categoryId": body.categoryId}'
276281
// (used only with Python)
277282
"formatParamsAsPythonDict": (params) => {
278-
return params.length > 0
279-
? ', {' + [...new Set(params)].map(param => param.substring(2)).map(param => `"${param}": body.${param}`).join(', ') + '}'
280-
: ''
283+
if (params.length === 0) {
284+
return params
285+
}
286+
return ', {' + Array.from(
287+
new Set(params),
288+
p => {
289+
const bindTarget = p.substring(0, 1)
290+
const paramName = p.substring(2)
291+
const prefix = placeholdersMap['py'][bindTarget]
292+
return `"${paramName}": ${prefix}${paramName}`
293+
}
294+
).join(', ') + '}'
281295
},
282296

283297
"placeholdersMap": placeholdersMap,

src/templates/routes.py.ejs

+1-4
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,7 @@ endpoints.forEach(function(endpoint) {
186186
for (const [name, query] of Object.entries(queryWithName)) {
187187
const sql = convertToPsycopgNamedArguments(formatQueryForPython(query, 20))
188188
const params = extractParamsFromQuery(query);
189-
const formattedParams = params.length > 0
190-
// [ "p.categoryId" ] => [ '"categoryId": categoryId' ]
191-
? ', {' + params.map(param => param.substring(2)).map(param => `"${param}": ${param}`).join(', ') + '}'
192-
: ''
189+
const formattedParams = formatParamsAsPythonDict(params)
193190
queries.push({ [name]: { sql : sql, formattedParams: formattedParams }})
194191
}
195192
})

0 commit comments

Comments
 (0)