chore: fixes to http and request types for orders (3) (#13824)

* chore: fixes to http and request types for orders (3)

* add order store routes
This commit is contained in:
Shahed Nasser
2025-10-28 11:07:10 +02:00
committed by GitHub
parent f253b325f9
commit db777dc3d5
26 changed files with 111 additions and 61 deletions

View File

@@ -69,6 +69,10 @@ export interface AdminUpdateReturnItems {
* The ID of the return reason to associate with the item.
*/
reason_id?: string | null
/**
* Custom key-value pairs that can be added to the return item.
*/
metadata?: Record<string, unknown> | null
}
export interface AdminAddReturnShipping {
@@ -179,7 +183,11 @@ export interface AdminReceiveItems {
* A note that is viewed by admins only to
* describe the received item.
*/
internal_note?: string
internal_note?: string
/**
* The description of the received item.
*/
description?: string
}[]
}
@@ -204,6 +212,12 @@ export interface AdminDismissItems {
}[]
}
/**
* @privateRemarks
* This type doesn't match the validator of the API route,
* however, it's used by the admin dashboard. We should
* consider creating separate types for the admin.
*/
export interface AdminUpdateReceiveItems {
/**
* The received quantity of the item.
@@ -224,6 +238,12 @@ export interface AdminUpdateReceiveItems {
metadata?: Record<string, unknown>
}
/**
* @privateRemarks
* This type doesn't match the validator of the API route,
* however, it's used by the admin dashboard. We should
* consider creating separate types for the admin.
*/
export interface AdminUpdateDismissItems {
/**
* The quantity of the item that is damaged.

View File

@@ -15,7 +15,7 @@ import {
} from "@medusajs/framework/http"
export const GET = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<HttpTypes.AdminReturnReasonParams>,
res: MedusaResponse<AdminReturnReasonResponse>
) => {
const return_reason = await refetchEntity({
@@ -36,7 +36,10 @@ export const GET = async (
}
export const POST = async (
req: AuthenticatedMedusaRequest<HttpTypes.AdminUpdateReturnReason>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminUpdateReturnReason,
HttpTypes.AdminReturnReasonParams
>,
res: MedusaResponse<AdminReturnReasonResponse>
) => {
const workflow = updateReturnReasonsWorkflow(req.scope)

View File

@@ -36,7 +36,10 @@ export const GET = async (
}
export const POST = async (
req: AuthenticatedMedusaRequest<HttpTypes.AdminCreateReturnReason>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminCreateReturnReason,
HttpTypes.AdminReturnReasonParams
>,
res: MedusaResponse<HttpTypes.AdminReturnReasonResponse>
) => {
const workflow = createReturnReasonsWorkflow(req.scope)

View File

@@ -7,20 +7,7 @@ import {
import { applyAndAndOrOperators } from "../../utils/common-validators"
export const AdminGetReturnReasonsReturnReasonParams =
createSelectParams().merge(
z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
value: z.union([z.string(), z.array(z.string())]).optional(),
label: z.union([z.string(), z.array(z.string())]).optional(),
description: z.union([z.string(), z.array(z.string())]).optional(),
parent_return_reason_id: z
.union([z.string(), z.array(z.string())])
.optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
})
)
createSelectParams()
export type AdminGetReturnReasonsReturnReasonParamsType = z.infer<
typeof AdminGetReturnReasonsReturnReasonParams

View File

@@ -14,7 +14,10 @@ import { AdminPostReturnsDismissItemsActionReqSchemaType } from "../../../valida
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsDismissItemsActionReqSchemaType>,
req: AuthenticatedMedusaRequest<
AdminPostReturnsDismissItemsActionReqSchemaType,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id, action_id } = req.params
@@ -51,7 +54,7 @@ export const POST = async (
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminReturnFilters>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -7,11 +7,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsReceiveItemsReqSchemaType } from "../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReceiveItemsReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminDismissItems,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -14,7 +14,10 @@ import { AdminPostReturnsReceiveItemsActionReqSchemaType } from "../../../valida
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReceiveItemsActionReqSchemaType>,
req: AuthenticatedMedusaRequest<
AdminPostReturnsReceiveItemsActionReqSchemaType,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id, action_id } = req.params
@@ -51,7 +54,7 @@ export const POST = async (
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminReturnFilters>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -7,11 +7,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsReceiveItemsReqSchemaType } from "../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReceiveItemsReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminReceiveItems,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -8,10 +8,12 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsConfirmRequestReqSchemaType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsConfirmRequestReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminConfirmReceiveReturn,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -13,10 +13,12 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReceiveReturnsReqSchemaType } from "../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReceiveReturnsReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminInitiateReceiveReturn,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminOrderReturnResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -10,11 +10,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsRequestItemsActionReqSchemaType } from "../../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsRequestItemsActionReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminUpdateReturnItems,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id, action_id } = req.params
@@ -49,7 +51,7 @@ export const POST = async (
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminReturnFilters>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -7,11 +7,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsRequestItemsReqSchemaType } from "../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsRequestItemsReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminAddReturnItems,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -11,10 +11,12 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsConfirmRequestReqSchemaType } from "../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsConfirmRequestReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminConfirmReturnRequest,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -7,11 +7,10 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsReturnReqSchemaType } from "../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const GET = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<HttpTypes.SelectParams>,
res: MedusaResponse<HttpTypes.AdminReturnResponse>
) => {
const { id } = req.params
@@ -39,7 +38,10 @@ export const GET = async (
}
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReturnReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminUpdateReturnRequest,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -10,11 +10,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsShippingActionReqSchemaType } from "../../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsShippingActionReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminUpdateReturnShipping,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id, action_id } = req.params
@@ -49,7 +51,7 @@ export const POST = async (
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<{}, HttpTypes.AdminReturnFilters>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -7,11 +7,13 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsShippingReqSchemaType } from "../../validators"
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsShippingReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminAddReturnShipping,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminReturnPreviewResponse>
) => {
const { id } = req.params

View File

@@ -7,6 +7,7 @@ import * as QueryConfig from "./query-config"
import {
AdminGetOrdersOrderParams,
AdminGetOrdersParams,
AdminGetReturnParams,
AdminPostCancelReturnReqSchema,
AdminPostReceiveReturnItemsReqSchema,
AdminPostReceiveReturnsReqSchema,
@@ -35,7 +36,7 @@ export const adminReturnRoutesMiddlewares: MiddlewareRoute[] = [
matcher: "/admin/returns/:id",
middlewares: [
validateAndTransformQuery(
AdminGetOrdersOrderParams,
AdminGetReturnParams,
QueryConfig.retrieveTransformQueryConfig
),
],

View File

@@ -10,7 +10,6 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminPostReturnsReqSchemaType } from "./validators"
export const GET = async (
req: AuthenticatedMedusaRequest<HttpTypes.AdminOrderFilters>,
@@ -40,7 +39,10 @@ export const GET = async (
}
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReqSchemaType>,
req: AuthenticatedMedusaRequest<
HttpTypes.AdminInitiateReturnRequest,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.AdminOrderReturnResponse>
) => {
const input = {

View File

@@ -19,6 +19,10 @@ export type AdminGetOrdersOrderParamsType = z.infer<
typeof AdminGetOrdersOrderParams
>
export const AdminGetReturnParams = createSelectParams()
export type AdminGetReturnParamsType = z.infer<typeof AdminGetReturnParams>
/**
* Parameters used to filter and configure the pagination of the retrieved order.
*/

View File

@@ -4,7 +4,7 @@ import { HttpTypes } from "@medusajs/framework/types"
// TODO: Do we want to apply some sort of authentication here? My suggestion is that we do
export const GET = async (
req: MedusaRequest,
req: MedusaRequest<HttpTypes.SelectParams>,
res: MedusaResponse<HttpTypes.StoreOrderResponse>
) => {
const workflow = getOrderDetailWorkflow(req.scope)

View File

@@ -5,10 +5,11 @@ import {
getOrderDetailWorkflow,
} from "@medusajs/core-flows"
import { StoreAcceptOrderTransferType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<StoreAcceptOrderTransferType>,
req: AuthenticatedMedusaRequest<
HttpTypes.StoreAcceptOrderTransfer,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.StoreOrderResponse>
) => {
await acceptOrderTransferWorkflow(req.scope).run({

View File

@@ -9,7 +9,7 @@ import {
import { HttpTypes } from "@medusajs/framework/types"
export const POST = async (
req: AuthenticatedMedusaRequest,
req: AuthenticatedMedusaRequest<{}, HttpTypes.SelectParams>,
res: MedusaResponse<HttpTypes.StoreOrderResponse>
) => {
const orderId = req.params.id

View File

@@ -5,10 +5,11 @@ import {
getOrderDetailWorkflow,
} from "@medusajs/core-flows"
import { StoreDeclineOrderTransferRequestType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<StoreDeclineOrderTransferRequestType>,
req: AuthenticatedMedusaRequest<
HttpTypes.StoreDeclineOrderTransfer,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.StoreOrderResponse>
) => {
await declineOrderTransferRequestWorkflow(req.scope).run({

View File

@@ -7,10 +7,12 @@ import {
MedusaResponse,
} from "@medusajs/framework/http"
import { HttpTypes } from "@medusajs/framework/types"
import { StoreRequestOrderTransferType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<StoreRequestOrderTransferType>,
req: AuthenticatedMedusaRequest<
HttpTypes.StoreRequestOrderTransfer,
HttpTypes.SelectParams
>,
res: MedusaResponse<HttpTypes.StoreOrderResponse>
) => {
const orderId = req.params.id

View File

@@ -1,7 +1,7 @@
import { MiddlewareRoute } from "@medusajs/framework/http"
import { validateAndTransformQuery } from "@medusajs/framework"
import * as QueryConfig from "./query-config"
import { StoreReturnReasonParams } from "./validators"
import { StoreReturnReasonParams, StoreReturnReasonsParams } from "./validators"
export const storeReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
{
@@ -9,7 +9,7 @@ export const storeReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
matcher: "/store/return-reasons",
middlewares: [
validateAndTransformQuery(
StoreReturnReasonParams,
StoreReturnReasonsParams,
QueryConfig.listTransformQueryConfig
),
],

View File

@@ -6,7 +6,7 @@ import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
import { HttpTypes } from "@medusajs/framework/types"
export const GET = async (
req: MedusaRequest,
req: MedusaRequest<HttpTypes.FindParams>,
res: MedusaResponse<HttpTypes.StoreReturnReasonListResponse>
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)