Skip to content

Commit

Permalink
docs-util: fix query params not retrieved correctly for some routes
Browse files Browse the repository at this point in the history
  • Loading branch information
shahednasser committed Dec 23, 2024
1 parent c804ae5 commit 4800864
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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
Expand Down
22 changes: 17 additions & 5 deletions www/utils/packages/docs-generator/src/classes/kinds/oas.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = [
Expand Down Expand Up @@ -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
Expand All @@ -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({
Expand All @@ -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",
Expand Down

0 comments on commit 4800864

Please sign in to comment.