feat(medusa,core-flows,types): API to create payment collections for order (#8617)
what: - adds an API to create a payment collection for order
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
import { MiddlewareRoute } from "@medusajs/framework"
|
||||
import { validateAndTransformBody } from "../../utils/validate-body"
|
||||
import { validateAndTransformQuery } from "../../utils/validate-query"
|
||||
import * as queryConfig from "./query-config"
|
||||
import {
|
||||
AdminCreatePaymentCollection,
|
||||
AdminGetPaymentCollectionParams,
|
||||
} from "./validators"
|
||||
|
||||
export const adminPaymentCollectionsMiddlewares: MiddlewareRoute[] = [
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/payment-collections",
|
||||
middlewares: [
|
||||
validateAndTransformBody(AdminCreatePaymentCollection),
|
||||
validateAndTransformQuery(
|
||||
AdminGetPaymentCollectionParams,
|
||||
queryConfig.retrievePaymentCollectionTransformQueryConfig
|
||||
),
|
||||
],
|
||||
},
|
||||
]
|
||||
@@ -0,0 +1,12 @@
|
||||
export const defaultPaymentCollectionFields = [
|
||||
"id",
|
||||
"currency_code",
|
||||
"amount",
|
||||
"status",
|
||||
"*payment_sessions",
|
||||
]
|
||||
|
||||
export const retrievePaymentCollectionTransformQueryConfig = {
|
||||
defaults: defaultPaymentCollectionFields,
|
||||
isList: false,
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import { createOrderPaymentCollectionWorkflow } from "@medusajs/core-flows"
|
||||
import { HttpTypes } from "@medusajs/types"
|
||||
import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
} from "../../../types/routing"
|
||||
import { refetchEntity } from "../../utils/refetch-entity"
|
||||
import { AdminCreatePaymentCollectionType } from "./validators"
|
||||
|
||||
export const POST = async (
|
||||
req: AuthenticatedMedusaRequest<AdminCreatePaymentCollectionType>,
|
||||
res: MedusaResponse<HttpTypes.AdminPaymentCollectionResponse>
|
||||
) => {
|
||||
const { result } = await createOrderPaymentCollectionWorkflow(req.scope).run({
|
||||
input: req.body,
|
||||
})
|
||||
|
||||
const paymentCollection = await refetchEntity(
|
||||
"payment_collection",
|
||||
result[0].id,
|
||||
req.scope,
|
||||
req.remoteQueryConfig.fields
|
||||
)
|
||||
|
||||
res.status(200).json({ payment_collection: paymentCollection })
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import { z } from "zod"
|
||||
import { createSelectParams } from "../../utils/validators"
|
||||
|
||||
export type AdminGetPaymentCollectionParamsType = z.infer<
|
||||
typeof AdminGetPaymentCollectionParams
|
||||
>
|
||||
export const AdminGetPaymentCollectionParams = createSelectParams()
|
||||
|
||||
export type AdminCreatePaymentCollectionType = z.infer<
|
||||
typeof AdminCreatePaymentCollection
|
||||
>
|
||||
export const AdminCreatePaymentCollection = z
|
||||
.object({
|
||||
order_id: z.string(),
|
||||
amount: z.number().optional(),
|
||||
})
|
||||
.strict()
|
||||
@@ -16,6 +16,7 @@ import { adminInviteRoutesMiddlewares } from "./admin/invites/middlewares"
|
||||
import { adminNotificationRoutesMiddlewares } from "./admin/notifications/middlewares"
|
||||
import { adminOrderEditRoutesMiddlewares } from "./admin/order-edits/middlewares"
|
||||
import { adminOrderRoutesMiddlewares } from "./admin/orders/middlewares"
|
||||
import { adminPaymentCollectionsMiddlewares } from "./admin/payment-collections/middlewares"
|
||||
import { adminPaymentRoutesMiddlewares } from "./admin/payments/middlewares"
|
||||
import { adminPriceListsRoutesMiddlewares } from "./admin/price-lists/middlewares"
|
||||
import { adminPricePreferencesRoutesMiddlewares } from "./admin/price-preferences/middlewares"
|
||||
@@ -114,4 +115,5 @@ export default defineMiddlewares([
|
||||
...adminExchangeRoutesMiddlewares,
|
||||
...adminProductVariantRoutesMiddlewares,
|
||||
...adminOrderEditRoutesMiddlewares,
|
||||
...adminPaymentCollectionsMiddlewares,
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user