fix(types,order,medusa): Create credit lines + hooks (#11569)
what: - api/workflows to create credit lines - hooks to enable extending credit lines
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { createOrderCreditLinesWorkflow } from "@medusajs/core-flows"
|
||||
import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
} 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<AdminCreateOrderCreditLinesType>,
|
||||
res: MedusaResponse<HttpTypes.AdminOrderResponse>
|
||||
) => {
|
||||
const query = req.scope.resolve(ContainerRegistrationKeys.QUERY)
|
||||
const { id } = req.params
|
||||
|
||||
await createOrderCreditLinesWorkflow(req.scope).run({
|
||||
input: { credit_lines: [req.validatedBody], id },
|
||||
})
|
||||
|
||||
const {
|
||||
data: [order],
|
||||
} = await query.graph(
|
||||
{
|
||||
entity: "orders",
|
||||
fields: req.queryConfig.fields,
|
||||
filters: { id },
|
||||
},
|
||||
{ throwIfKeyNotFound: true }
|
||||
)
|
||||
|
||||
res.status(200).json({ order })
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import * as QueryConfig from "./query-config"
|
||||
import {
|
||||
AdminCancelOrderTransferRequest,
|
||||
AdminCompleteOrder,
|
||||
AdminCreateOrderCreditLines,
|
||||
AdminGetOrdersOrderItemsParams,
|
||||
AdminGetOrdersOrderParams,
|
||||
AdminGetOrdersParams,
|
||||
@@ -113,7 +114,17 @@ export const adminOrderRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
),
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/orders/:id/credit-lines",
|
||||
middlewares: [
|
||||
validateAndTransformBody(AdminCreateOrderCreditLines),
|
||||
validateAndTransformQuery(
|
||||
AdminGetOrdersOrderParams,
|
||||
QueryConfig.retrieveTransformQueryConfig
|
||||
),
|
||||
],
|
||||
},
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/orders/:id/fulfillments",
|
||||
|
||||
@@ -32,7 +32,11 @@ export const defaultAdminRetrieveOrderFields = [
|
||||
"original_shipping_tax_total",
|
||||
"original_shipping_subtotal",
|
||||
"original_shipping_total",
|
||||
"credit_line_total",
|
||||
"credit_line_subtotal",
|
||||
"credit_line_tax_total",
|
||||
"*items",
|
||||
"*credit_lines",
|
||||
"*items.tax_lines",
|
||||
"*items.adjustments",
|
||||
"*items.variant",
|
||||
|
||||
@@ -144,3 +144,13 @@ export const AdminUpdateOrder = z.object({
|
||||
billing_address: AddressPayload.optional(),
|
||||
metadata: z.record(z.unknown()).nullish(),
|
||||
})
|
||||
|
||||
export type AdminCreateOrderCreditLinesType = z.infer<
|
||||
typeof AdminCreateOrderCreditLines
|
||||
>
|
||||
export const AdminCreateOrderCreditLines = z.object({
|
||||
amount: z.number(),
|
||||
reference: z.string(),
|
||||
reference_id: z.string(),
|
||||
metadata: z.record(z.unknown()).nullish(),
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user