hotfix(medusa): Deleted region are missing on order retrieval (#2583)

This commit is contained in:
Adrien de Peretti
2022-11-10 14:44:35 +01:00
committed by GitHub
parent 657d0a6586
commit 699bb1d57b
3 changed files with 36 additions and 3 deletions

View File

@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
Retrieve deleted regions on orders

View File

@@ -2306,6 +2306,33 @@ describe("/admin/orders", () => {
})
})
it("retrieves an order should include a deleted region", async () => {
const api = useApi()
await dbConnection.manager.query(
`UPDATE region
set deleted_at = NOW()
WHERE id = 'test-region';`
)
const order = await api.get("/admin/orders/test-order", {
headers: {
authorization: "Bearer test_token",
},
})
expect(order.status).toEqual(200)
expect(order.data.order).toEqual(
expect.objectContaining({
id: "test-order",
region: expect.objectContaining({
id: "test-region",
deleted_at: expect.any(String),
}),
})
)
})
it("throws on invalid relation", async () => {
const api = useApi()

View File

@@ -11,7 +11,7 @@ export class OrderRepository extends Repository<Order> {
const entities = await this.find(optionsWithoutRelations)
const entitiesIds = entities.map(({ id }) => id)
const groupedRelations = {}
const groupedRelations: { [topLevel: string]: string[] } = {}
for (const rel of relations) {
const [topLevel] = rel.split(".")
if (groupedRelations[topLevel]) {
@@ -22,10 +22,11 @@ export class OrderRepository extends Repository<Order> {
}
const entitiesIdsWithRelations = await Promise.all(
Object.entries(groupedRelations).map(async ([_, rels]) => {
Object.entries(groupedRelations).map(async ([topLevel, rels]) => {
return this.findByIds(entitiesIds, {
select: ["id"],
relations: rels as string[],
relations: rels,
withDeleted: topLevel === "region",
})
})
).then(flatten)