docs-util: fix query params not retrieved correctly for some routes (#10708)
This commit is contained in:
@@ -680,14 +680,6 @@
|
||||
* type: string
|
||||
* title: category_id
|
||||
* description: A product category's ID.
|
||||
* - name: currency_code
|
||||
* in: query
|
||||
* description: The currency code to retrieve prices in.
|
||||
* required: false
|
||||
* schema:
|
||||
* type: string
|
||||
* title: currency_code
|
||||
* description: The currency code to retrieve prices in.
|
||||
* - name: variants
|
||||
* in: query
|
||||
* description: Filter the products' variants.
|
||||
@@ -712,6 +704,22 @@
|
||||
* type: string
|
||||
* title: value
|
||||
* description: Filter by a value of the option.
|
||||
* - name: country_code
|
||||
* in: query
|
||||
* description: The product's country code.
|
||||
* required: false
|
||||
* schema:
|
||||
* type: string
|
||||
* title: country_code
|
||||
* description: The product's country code.
|
||||
* - name: cart_id
|
||||
* in: query
|
||||
* description: The product's cart id.
|
||||
* required: false
|
||||
* schema:
|
||||
* type: string
|
||||
* title: cart_id
|
||||
* description: The product's cart id.
|
||||
* x-codeSamples:
|
||||
* - lang: Shell
|
||||
* label: cURL
|
||||
|
||||
@@ -67,6 +67,7 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
"AuthenticatedMedusaRequest",
|
||||
"MedusaStoreRequest",
|
||||
]
|
||||
readonly REQUEST_CHECK_QUERY_ARGS = ["RequestWithContext"]
|
||||
// as it's not always possible to detect authenticated request
|
||||
// use this to override the default detection logic.
|
||||
readonly AUTH_REQUESTS: AuthRequests[] = [
|
||||
@@ -1081,17 +1082,26 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
|
||||
const requestTypeArguments =
|
||||
requestType.typeArguments || requestType.aliasTypeArguments
|
||||
const shouldCheckTypeArgumentForQuery =
|
||||
this.REQUEST_CHECK_QUERY_ARGS.includes(
|
||||
node.parameters[0].type.typeName.getText()
|
||||
)
|
||||
|
||||
if (!requestTypeArguments || requestTypeArguments.length < 2) {
|
||||
if (
|
||||
!requestTypeArguments ||
|
||||
(requestTypeArguments.length < 2 && !shouldCheckTypeArgumentForQuery)
|
||||
) {
|
||||
return {
|
||||
queryParameters,
|
||||
requestSchema,
|
||||
}
|
||||
}
|
||||
|
||||
const checkQueryIndex = requestTypeArguments.length >= 2 ? 1 : 0
|
||||
// Not all routes support a second type argument yet,
|
||||
// so the query param may be passed in the first type argument
|
||||
const hasQueryParams = requestTypeArguments[1].getProperties().length > 0
|
||||
const hasQueryParams =
|
||||
requestTypeArguments[checkQueryIndex].getProperties().length > 0
|
||||
// Not all routes support a second type argument yet,
|
||||
// so we have to support routes that pass the query parameters type
|
||||
// in the first type argument
|
||||
@@ -1103,7 +1113,7 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
})
|
||||
const zodObjectQueryTypeName = getCorrectZodTypeName({
|
||||
typeReferenceNode: node.parameters[0].type,
|
||||
itemType: requestTypeArguments[1],
|
||||
itemType: requestTypeArguments[checkQueryIndex],
|
||||
})
|
||||
|
||||
const requestBodyParameterSchema = this.typeToSchema({
|
||||
@@ -1118,10 +1128,12 @@ class OasKindGenerator extends FunctionKindGenerator {
|
||||
})
|
||||
const queryParameterSchema = hasQueryParams
|
||||
? this.typeToSchema({
|
||||
itemType: requestTypeArguments[1],
|
||||
itemType: requestTypeArguments[checkQueryIndex],
|
||||
descriptionOptions: {
|
||||
parentName: tagName,
|
||||
rawParentName: this.checker.typeToString(requestTypeArguments[1]),
|
||||
rawParentName: this.checker.typeToString(
|
||||
requestTypeArguments[checkQueryIndex]
|
||||
),
|
||||
},
|
||||
zodObjectTypeName: zodObjectQueryTypeName,
|
||||
context: "query",
|
||||
|
||||
Reference in New Issue
Block a user