From f253b325f908717957ca9e505fa0e6287d201f9b Mon Sep 17 00:00:00 2001 From: Shahed Nasser Date: Tue, 28 Oct 2025 11:06:26 +0200 Subject: [PATCH] chore: fixes to http and request types for orders (2) (#13823) --- .../types/src/http/order/admin/payload.ts | 28 +++++++++++++++++++ .../types/src/http/order/admin/queries.ts | 26 +++++++++++++++-- .../[id]/convert-to-order/route.ts | 5 +++- .../src/api/admin/draft-orders/[id]/route.ts | 8 ++++-- .../src/api/admin/draft-orders/route.ts | 6 ++-- .../api/admin/orders/[id]/archive/route.ts | 2 +- .../src/api/admin/orders/[id]/cancel/route.ts | 2 +- .../api/admin/orders/[id]/changes/route.ts | 2 +- .../api/admin/orders/[id]/complete/route.ts | 2 +- .../admin/orders/[id]/credit-lines/route.ts | 6 ++-- .../mark-as-delivered/route.ts | 2 +- .../[fulfillment_id]/shipments/route.ts | 4 +-- .../admin/orders/[id]/fulfillments/route.ts | 4 +-- .../medusa/src/api/admin/orders/[id]/route.ts | 13 +++++---- .../orders/[id]/transfer/cancel/route.ts | 2 +- .../api/admin/orders/[id]/transfer/route.ts | 6 ++-- .../medusa/src/api/admin/orders/validators.ts | 7 +---- 17 files changed, 90 insertions(+), 35 deletions(-) diff --git a/packages/core/types/src/http/order/admin/payload.ts b/packages/core/types/src/http/order/admin/payload.ts index fce47803b1..83675df2cf 100644 --- a/packages/core/types/src/http/order/admin/payload.ts +++ b/packages/core/types/src/http/order/admin/payload.ts @@ -100,8 +100,17 @@ export interface AdminCancelOrderFulfillment { } export interface AdminRequestOrderTransfer { + /** + * The ID of the customer to transfer the order to. + */ customer_id: string + /** + * An internal note viewed by admins only. + */ internal_note?: string + /** + * A description for the transfer request. + */ description?: string } @@ -161,3 +170,22 @@ export interface OrderAddress { */ metadata?: Record | null } + +export interface AdminCreateOrderCreditLine { + /** + * The amount of the credit line. + */ + amount: number + /** + * The name of the table this credit line is associated with. + */ + reference: string + /** + * The ID of the reference entity in the reference table. + */ + reference_id: string + /** + * Key-value pairs of custom data. + */ + metadata?: Record | null +} \ No newline at end of file diff --git a/packages/core/types/src/http/order/admin/queries.ts b/packages/core/types/src/http/order/admin/queries.ts index ae46435fea..c082ac3fdd 100644 --- a/packages/core/types/src/http/order/admin/queries.ts +++ b/packages/core/types/src/http/order/admin/queries.ts @@ -1,5 +1,5 @@ import { OperatorMap } from "../../../dal" -import { FindParams } from "../../common" +import { FindParams, SelectParams } from "../../common" import { BaseOrderChangesFilters, BaseOrderFilters } from "../common" export interface AdminOrderFilters extends FindParams, BaseOrderFilters { @@ -33,7 +33,7 @@ export interface AdminOrderFilters extends FindParams, BaseOrderFilters { updated_at?: OperatorMap } -export interface AdminOrderItemsFilters extends FindParams { +export interface AdminOrderItemsFilters extends SelectParams { /** * Filter by order item ID(s). */ @@ -48,6 +48,26 @@ export interface AdminOrderItemsFilters extends FindParams { version?: number[] | number } -export interface AdminOrderChangesFilters extends BaseOrderChangesFilters {} +export interface AdminOrderChangesFilters extends BaseOrderChangesFilters, SelectParams { + /** + * Apply filters on the change's creation date. + */ + created_at?: OperatorMap + /** + * Apply filters on the change's update date. + */ + updated_at?: OperatorMap + /** + * Apply filters on the change's deletion date. + */ + deleted_at?: OperatorMap +} export interface AdminGetOrderShippingOptionList {} +export interface AdminGetOrderParams extends SelectParams {} +export interface AdminGetOrderDetailsParams extends SelectParams { + /** + * The version of the order to retrieve details for. + */ + version?: number +} \ No newline at end of file diff --git a/packages/medusa/src/api/admin/draft-orders/[id]/convert-to-order/route.ts b/packages/medusa/src/api/admin/draft-orders/[id]/convert-to-order/route.ts index 2f5140c0fb..615bc05a1f 100644 --- a/packages/medusa/src/api/admin/draft-orders/[id]/convert-to-order/route.ts +++ b/packages/medusa/src/api/admin/draft-orders/[id]/convert-to-order/route.ts @@ -3,7 +3,10 @@ import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http" import { ContainerRegistrationKeys } from "@medusajs/framework/utils" import { HttpTypes } from "@medusajs/types" -export const POST = async (req: MedusaRequest, res: MedusaResponse) => { +export const POST = async ( + req: MedusaRequest, + res: MedusaResponse +) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) await convertDraftOrderWorkflow(req.scope).run({ diff --git a/packages/medusa/src/api/admin/draft-orders/[id]/route.ts b/packages/medusa/src/api/admin/draft-orders/[id]/route.ts index c7a9526758..23945f47f1 100644 --- a/packages/medusa/src/api/admin/draft-orders/[id]/route.ts +++ b/packages/medusa/src/api/admin/draft-orders/[id]/route.ts @@ -10,10 +10,9 @@ import { } from "@medusajs/framework/http" import { HttpTypes } from "@medusajs/framework/types" import { ContainerRegistrationKeys } from "@medusajs/framework/utils" -import { AdminUpdateDraftOrderType } from "../validators" export const GET = async ( - req: MedusaRequest, + req: MedusaRequest, res: MedusaResponse ) => { const workflow = getOrderDetailWorkflow(req.scope) @@ -32,7 +31,10 @@ export const GET = async ( } export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminUpdateDraftOrder, + HttpTypes.AdminDraftOrderParams + >, res: MedusaResponse ) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) diff --git a/packages/medusa/src/api/admin/draft-orders/route.ts b/packages/medusa/src/api/admin/draft-orders/route.ts index 0f01dd3cae..580fe024f3 100644 --- a/packages/medusa/src/api/admin/draft-orders/route.ts +++ b/packages/medusa/src/api/admin/draft-orders/route.ts @@ -19,7 +19,6 @@ import { remoteQueryObjectFromString, } from "@medusajs/framework/utils" import { refetchOrder } from "./helpers" -import { AdminCreateDraftOrderType } from "./validators" export const GET = async ( req: MedusaRequest, @@ -54,7 +53,10 @@ export const GET = async ( } export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminCreateDraftOrder & AdditionalData, + HttpTypes.AdminDraftOrderParams + >, res: MedusaResponse ) => { const input = req.validatedBody diff --git a/packages/medusa/src/api/admin/orders/[id]/archive/route.ts b/packages/medusa/src/api/admin/orders/[id]/archive/route.ts index 451e06b62f..5a1340bc7c 100644 --- a/packages/medusa/src/api/admin/orders/[id]/archive/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/archive/route.ts @@ -10,7 +10,7 @@ import { import { HttpTypes } from "@medusajs/framework/types" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminGetOrderParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/cancel/route.ts b/packages/medusa/src/api/admin/orders/[id]/cancel/route.ts index 3c94f76a3f..26df1de288 100644 --- a/packages/medusa/src/api/admin/orders/[id]/cancel/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/cancel/route.ts @@ -10,7 +10,7 @@ import { } from "@medusajs/framework/utils" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminGetOrderParams>, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/changes/route.ts b/packages/medusa/src/api/admin/orders/[id]/changes/route.ts index 2a7b1e8e9f..679f168b8f 100644 --- a/packages/medusa/src/api/admin/orders/[id]/changes/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/changes/route.ts @@ -9,7 +9,7 @@ import { } from "@medusajs/framework/http" export const GET = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest, res: MedusaResponse ) => { const { id } = req.params diff --git a/packages/medusa/src/api/admin/orders/[id]/complete/route.ts b/packages/medusa/src/api/admin/orders/[id]/complete/route.ts index 24fc2f464a..cf0f5497db 100644 --- a/packages/medusa/src/api/admin/orders/[id]/complete/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/complete/route.ts @@ -10,7 +10,7 @@ import { } from "@medusajs/framework/http" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/credit-lines/route.ts b/packages/medusa/src/api/admin/orders/[id]/credit-lines/route.ts index 14ebce5478..31deed20d5 100644 --- a/packages/medusa/src/api/admin/orders/[id]/credit-lines/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/credit-lines/route.ts @@ -5,10 +5,12 @@ import { } from "@medusajs/framework/http" import { HttpTypes } from "@medusajs/framework/types" import { ContainerRegistrationKeys } from "@medusajs/framework/utils" -import { AdminCreateOrderCreditLinesType } from "../../validators" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminCreateOrderCreditLine, + HttpTypes.AdminGetOrderParams + >, res: MedusaResponse ) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts index 0d808f72b9..ac3478103e 100644 --- a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/mark-as-delivered/route.ts @@ -7,7 +7,7 @@ import { } from "@medusajs/framework/http" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminGetOrderParams>, res: MedusaResponse ) => { const { id: orderId, fulfillment_id: fulfillmentId } = req.params diff --git a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route.ts b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route.ts index ea797c877e..50fd7c96a9 100644 --- a/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/fulfillments/[fulfillment_id]/shipments/route.ts @@ -7,12 +7,12 @@ import { AuthenticatedMedusaRequest, MedusaResponse, } from "@medusajs/framework/http" -import { AdminOrderCreateShipmentType } from "../../../../validators" import { AdditionalData, HttpTypes } from "@medusajs/framework/types" export const POST = async ( req: AuthenticatedMedusaRequest< - AdminOrderCreateShipmentType & AdditionalData + HttpTypes.AdminCreateOrderShipment & AdditionalData, + HttpTypes.AdminGetOrderParams >, res: MedusaResponse ) => { diff --git a/packages/medusa/src/api/admin/orders/[id]/fulfillments/route.ts b/packages/medusa/src/api/admin/orders/[id]/fulfillments/route.ts index cc59e9e641..1b47b61199 100644 --- a/packages/medusa/src/api/admin/orders/[id]/fulfillments/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/fulfillments/route.ts @@ -8,11 +8,11 @@ import { AuthenticatedMedusaRequest, MedusaResponse, } from "@medusajs/framework/http" -import { AdminOrderCreateFulfillmentType } from "../../validators" export const POST = async ( req: AuthenticatedMedusaRequest< - AdminOrderCreateFulfillmentType & AdditionalData + HttpTypes.AdminCreateOrderFulfillment & AdditionalData, + HttpTypes.AdminGetOrderParams >, res: MedusaResponse ) => { diff --git a/packages/medusa/src/api/admin/orders/[id]/route.ts b/packages/medusa/src/api/admin/orders/[id]/route.ts index 59f1b13280..640137992f 100644 --- a/packages/medusa/src/api/admin/orders/[id]/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/route.ts @@ -8,13 +8,11 @@ import { } from "@medusajs/framework/http" import { AdminOrder, HttpTypes } from "@medusajs/framework/types" import { ContainerRegistrationKeys } from "@medusajs/framework/utils" -import { - AdminGetOrdersOrderParamsType, - AdminUpdateOrderType, -} from "../validators" export const GET = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminGetOrderDetailsParams + >, res: MedusaResponse ) => { const workflow = getOrderDetailWorkflow(req.scope) @@ -30,7 +28,10 @@ export const GET = async ( } export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminUpdateOrder, + HttpTypes.AdminGetOrderDetailsParams + >, res: MedusaResponse ) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/transfer/cancel/route.ts b/packages/medusa/src/api/admin/orders/[id]/transfer/cancel/route.ts index 2aaf8a90a1..366c6587e6 100644 --- a/packages/medusa/src/api/admin/orders/[id]/transfer/cancel/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/transfer/cancel/route.ts @@ -7,7 +7,7 @@ import { AdminOrder, HttpTypes } from "@medusajs/framework/types" import { ContainerRegistrationKeys } from "@medusajs/framework/utils" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminGetOrderParams>, res: MedusaResponse ) => { const query = req.scope.resolve(ContainerRegistrationKeys.QUERY) diff --git a/packages/medusa/src/api/admin/orders/[id]/transfer/route.ts b/packages/medusa/src/api/admin/orders/[id]/transfer/route.ts index b071e66a35..dc3f1643ec 100644 --- a/packages/medusa/src/api/admin/orders/[id]/transfer/route.ts +++ b/packages/medusa/src/api/admin/orders/[id]/transfer/route.ts @@ -8,10 +8,12 @@ import { ContainerRegistrationKeys, remoteQueryObjectFromString, } from "@medusajs/framework/utils" -import { AdminTransferOrderType } from "../../validators" export const POST = async ( - req: AuthenticatedMedusaRequest, + req: AuthenticatedMedusaRequest< + HttpTypes.AdminRequestOrderTransfer, + HttpTypes.AdminGetOrderParams + >, res: MedusaResponse ) => { const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY) diff --git a/packages/medusa/src/api/admin/orders/validators.ts b/packages/medusa/src/api/admin/orders/validators.ts index a4ade1ba48..9739469af6 100644 --- a/packages/medusa/src/api/admin/orders/validators.ts +++ b/packages/medusa/src/api/admin/orders/validators.ts @@ -9,12 +9,7 @@ import { export const AdminGetOrdersOrderParams = createSelectParams().merge( z.object({ - id: z.union([z.string(), z.array(z.string())]).optional(), - status: z.union([z.string(), z.array(z.string())]).optional(), version: z.number().optional(), - created_at: createOperatorMap().optional(), - updated_at: createOperatorMap().optional(), - deleted_at: createOperatorMap().optional(), }) ) @@ -31,7 +26,7 @@ export const AdminGetOrdersOrderItemsParams = createSelectParams().merge( ) export type AdminGetOrdersOrderItemsParamsType = z.infer< - typeof AdminGetOrdersOrderParams + typeof AdminGetOrdersOrderItemsParams > export const AdminGetOrderShippingOptionList = z.object({})