fix(index): query builder handle json array (#12480)
* fix(index): query builder handle json array * fix sales channel event names
This commit is contained in:
committed by
GitHub
parent
7fdbf2a965
commit
c661e06488
5
.changeset/long-games-beg.md
Normal file
5
.changeset/long-games-beg.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@medusajs/index": patch
|
||||
---
|
||||
|
||||
fix(index): query builder handle json array
|
||||
@@ -373,6 +373,39 @@ medusaIntegrationTestRunner({
|
||||
},
|
||||
])
|
||||
})
|
||||
|
||||
it("should use query.index to get products by an array of handles", async () => {
|
||||
await populateData(api)
|
||||
|
||||
const query = appContainer.resolve(
|
||||
ContainerRegistrationKeys.QUERY
|
||||
) as RemoteQueryFunction
|
||||
|
||||
const resultset = await fetchAndRetry(
|
||||
async () =>
|
||||
await query.index({
|
||||
entity: "product",
|
||||
fields: ["id"],
|
||||
filters: {
|
||||
handle: ["extra-product", "test-product"],
|
||||
},
|
||||
pagination: {
|
||||
take: 10,
|
||||
skip: 0,
|
||||
order: {
|
||||
"variants.prices.amount": "DESC",
|
||||
},
|
||||
},
|
||||
}),
|
||||
({ data }) => data.length > 0,
|
||||
{
|
||||
retries: 3,
|
||||
waitSeconds: 3,
|
||||
}
|
||||
)
|
||||
|
||||
expect(resultset.data.length).toEqual(2)
|
||||
})
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
@@ -31,7 +31,7 @@ export const defaultSchema = `
|
||||
currency_code: String
|
||||
}
|
||||
|
||||
type SalesChannel @Listeners(values: ["${Modules.SALES_CHANNEL}.sales_channel.created", "${Modules.SALES_CHANNEL}.sales_channel.updated", "${Modules.SALES_CHANNEL}.sales_channel.deleted"]) {
|
||||
type SalesChannel @Listeners(values: ["${Modules.SALES_CHANNEL}.sales-channel.created", "${Modules.SALES_CHANNEL}.sales-channel.updated", "${Modules.SALES_CHANNEL}.sales-channel.deleted"]) {
|
||||
id: ID
|
||||
is_disabled: Boolean
|
||||
}
|
||||
|
||||
@@ -308,6 +308,7 @@ export class QueryBuilder {
|
||||
[targetField]: item === null ? null : item,
|
||||
})
|
||||
)
|
||||
|
||||
builder.whereRaw(
|
||||
`${aliasMapping[attr]}.data${nested} @> ANY(ARRAY[${inPlaceholders}]::JSONB[])`,
|
||||
jsonbValues
|
||||
@@ -355,11 +356,13 @@ export class QueryBuilder {
|
||||
[...value]
|
||||
)
|
||||
} else {
|
||||
const targetField = field[field.length - 1] as string
|
||||
|
||||
const jsonbValues = value.map((item) =>
|
||||
JSON.stringify({ [nested]: item === null ? null : item })
|
||||
JSON.stringify({ [targetField]: item === null ? null : item })
|
||||
)
|
||||
builder.whereRaw(
|
||||
`${aliasMapping[attr]}.data IN ANY(ARRAY[${inPlaceholders}]::JSONB[])`,
|
||||
`${aliasMapping[attr]}.data${nested} @> ANY(ARRAY[${inPlaceholders}]::JSONB[])`,
|
||||
jsonbValues
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user