From 90cff0777fd351771f3713bf84f4c327c64d276c Mon Sep 17 00:00:00 2001 From: Kasper Fabricius Kristensen <45367945+kasperkristensen@users.noreply.github.com> Date: Mon, 29 Jan 2024 17:00:45 +0100 Subject: [PATCH] fix(medusa): add support for `order` field on GET /admin/orders (#6258) **What** - Adds support for `order` field on `GET /admin/orders` --- .changeset/little-carrots-serve.md | 6 ++++++ .../api/__tests__/admin/order/order.js | 17 +++++++++++++++++ .../src/lib/models/AdminGetOrdersParams.ts | 4 ++++ .../src/api/routes/admin/orders/list-orders.ts | 8 ++++++++ 4 files changed, 35 insertions(+) create mode 100644 .changeset/little-carrots-serve.md diff --git a/.changeset/little-carrots-serve.md b/.changeset/little-carrots-serve.md new file mode 100644 index 0000000000..d3dfa094f0 --- /dev/null +++ b/.changeset/little-carrots-serve.md @@ -0,0 +1,6 @@ +--- +"@medusajs/client-types": patch +"@medusajs/medusa": patch +--- + +fix(medusa): Adds support for ordering GET /admin/orders diff --git a/integration-tests/api/__tests__/admin/order/order.js b/integration-tests/api/__tests__/admin/order/order.js index 6975ae5c52..bf4502d014 100644 --- a/integration-tests/api/__tests__/admin/order/order.js +++ b/integration-tests/api/__tests__/admin/order/order.js @@ -78,6 +78,23 @@ describe("/admin/orders", () => { }) expect(response.status).toEqual(200) }) + + it("gets orders ordered by display_id", async () => { + const api = useApi() + + const response = await api + .get("/admin/orders?order=display_id", adminReqConfig) + .catch((err) => { + console.log(err) + }) + expect(response.status).toEqual(200) + + const sortedOrders = response.data.orders.sort((a, b) => { + return a.display_id - b.display_id + }) + + expect(response.data.orders).toEqual(sortedOrders) + }) }) describe("POST /admin/orders/:id", () => { diff --git a/packages/generated/client-types/src/lib/models/AdminGetOrdersParams.ts b/packages/generated/client-types/src/lib/models/AdminGetOrdersParams.ts index 93261dcd51..b7c70eb467 100644 --- a/packages/generated/client-types/src/lib/models/AdminGetOrdersParams.ts +++ b/packages/generated/client-types/src/lib/models/AdminGetOrdersParams.ts @@ -155,4 +155,8 @@ export interface AdminGetOrdersParams { * Comma-separated fields that should be included in the returned order. */ fields?: string + /** + * A order field to sort-order the retrieved orders by. + */ + order?: string } diff --git a/packages/medusa/src/api/routes/admin/orders/list-orders.ts b/packages/medusa/src/api/routes/admin/orders/list-orders.ts index af7cb3860c..684365eb03 100644 --- a/packages/medusa/src/api/routes/admin/orders/list-orders.ts +++ b/packages/medusa/src/api/routes/admin/orders/list-orders.ts @@ -152,6 +152,7 @@ import { cleanResponseData } from "../../../../utils/clean-response-data" * - (query) limit=50 {integer} Limit the number of orders returned. * - (query) expand {string} Comma-separated relations that should be expanded in the returned order. * - (query) fields {string} Comma-separated fields that should be included in the returned order. + * - (query) order {string} A order field to sort-order the retrieved orders by. * x-codegen: * method: list * queryParams: AdminGetOrdersParams @@ -277,4 +278,11 @@ export class AdminGetOrdersParams extends AdminListOrdersSelector { @IsString() @IsOptional() fields?: string + + /** + * The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`. + */ + @IsOptional() + @IsString() + order?: string }