diff --git a/.changeset/pretty-books-punch.md b/.changeset/pretty-books-punch.md new file mode 100644 index 0000000000..c3b2ce8576 --- /dev/null +++ b/.changeset/pretty-books-punch.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +Retrieve deleted regions on orders diff --git a/integration-tests/api/__tests__/admin/order/order.js b/integration-tests/api/__tests__/admin/order/order.js index b54a776238..1be3f7cfb2 100644 --- a/integration-tests/api/__tests__/admin/order/order.js +++ b/integration-tests/api/__tests__/admin/order/order.js @@ -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() diff --git a/packages/medusa/src/repositories/order.ts b/packages/medusa/src/repositories/order.ts index 8d703f4d5e..234c1371e0 100644 --- a/packages/medusa/src/repositories/order.ts +++ b/packages/medusa/src/repositories/order.ts @@ -11,7 +11,7 @@ export class OrderRepository extends Repository { 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 { } 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)