feat: delete shipping options (#6993)
This commit is contained in:
@@ -2,9 +2,15 @@ import {
|
||||
ContainerRegistrationKeys,
|
||||
remoteQueryObjectFromString,
|
||||
} from "@medusajs/utils"
|
||||
import { AdminShippingOptionRetrieveResponse } from "@medusajs/types"
|
||||
import {
|
||||
AdminShippingOptionDeleteResponse,
|
||||
AdminShippingOptionRetrieveResponse,
|
||||
} from "@medusajs/types"
|
||||
import { AdminUpdateShippingOptionType } from "../validators"
|
||||
import { updateShippingOptionsWorkflow } from "@medusajs/core-flows"
|
||||
import {
|
||||
deleteShippingOptionsWorkflow,
|
||||
updateShippingOptionsWorkflow,
|
||||
} from "@medusajs/core-flows"
|
||||
import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
@@ -42,3 +48,25 @@ export const POST = async (
|
||||
|
||||
res.status(200).json({ shipping_option: shippingOption })
|
||||
}
|
||||
|
||||
export const DELETE = async (
|
||||
req: AuthenticatedMedusaRequest,
|
||||
res: MedusaResponse<AdminShippingOptionDeleteResponse>
|
||||
) => {
|
||||
const shippingOptionId = req.params.id
|
||||
|
||||
const workflow = deleteShippingOptionsWorkflow(req.scope)
|
||||
|
||||
const { errors } = await workflow.run({
|
||||
input: { ids: [shippingOptionId] },
|
||||
throwOnError: false,
|
||||
})
|
||||
|
||||
if (Array.isArray(errors) && errors[0]) {
|
||||
throw errors[0].error
|
||||
}
|
||||
|
||||
res
|
||||
.status(200)
|
||||
.json({ id: shippingOptionId, object: "shipping_option", deleted: true })
|
||||
}
|
||||
|
||||
@@ -3,11 +3,15 @@ import { authenticate } from "../../../utils/authenticate-middleware"
|
||||
import {
|
||||
AdminCreateShippingOption,
|
||||
AdminGetShippingOptionParams,
|
||||
AdminListShippingOptionParams,
|
||||
AdminShippingOptionRulesBatchAdd,
|
||||
AdminShippingOptionRulesBatchRemove,
|
||||
AdminUpdateShippingOption,
|
||||
} from "./validators"
|
||||
import { retrieveTransformQueryConfig } from "./query-config"
|
||||
import {
|
||||
listTransformQueryConfig,
|
||||
retrieveTransformQueryConfig,
|
||||
} from "./query-config"
|
||||
import { validateAndTransformBody } from "../../utils/validate-body"
|
||||
import { validateAndTransformQuery } from "../../utils/validate-query"
|
||||
|
||||
@@ -17,6 +21,17 @@ export const adminShippingOptionRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
middlewares: [authenticate("admin", ["bearer", "session"])],
|
||||
},
|
||||
|
||||
{
|
||||
method: ["GET"],
|
||||
matcher: "/admin/shipping-options",
|
||||
middlewares: [
|
||||
validateAndTransformQuery(
|
||||
AdminListShippingOptionParams,
|
||||
listTransformQueryConfig
|
||||
),
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/shipping-options",
|
||||
@@ -41,6 +56,11 @@ export const adminShippingOptionRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
method: ["DELETE"],
|
||||
matcher: "/admin/shipping-options/:id",
|
||||
},
|
||||
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/shipping-options/:id/rules/batch/add",
|
||||
|
||||
@@ -3,13 +3,43 @@ import {
|
||||
ContainerRegistrationKeys,
|
||||
remoteQueryObjectFromString,
|
||||
} from "@medusajs/utils"
|
||||
import { AdminShippingOptionRetrieveResponse } from "@medusajs/types"
|
||||
import {
|
||||
AdminShippingOptionListResponse,
|
||||
AdminShippingOptionRetrieveResponse
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
} from "../../../types/routing"
|
||||
import { AdminCreateShippingOptionType } from "./validators"
|
||||
|
||||
export const GET = async (
|
||||
req: AuthenticatedMedusaRequest,
|
||||
res: MedusaResponse<AdminShippingOptionListResponse>
|
||||
) => {
|
||||
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
|
||||
|
||||
const variables = {
|
||||
filters: req.filterableFields,
|
||||
...req.remoteQueryConfig.pagination,
|
||||
}
|
||||
|
||||
const queryObject = remoteQueryObjectFromString({
|
||||
entryPoint: "shipping_options",
|
||||
variables,
|
||||
fields: req.remoteQueryConfig.fields,
|
||||
})
|
||||
|
||||
const { rows: shipping_options, metadata } = await remoteQuery(queryObject)
|
||||
|
||||
res.json({
|
||||
shipping_options,
|
||||
count: metadata.count,
|
||||
offset: metadata.skip,
|
||||
limit: metadata.take,
|
||||
})
|
||||
}
|
||||
|
||||
export const POST = async (
|
||||
req: AuthenticatedMedusaRequest<AdminCreateShippingOptionType>,
|
||||
res: MedusaResponse<AdminShippingOptionRetrieveResponse>
|
||||
|
||||
@@ -3,9 +3,13 @@ import {
|
||||
ShippingOptionPriceType as ShippingOptionPriceTypeEnum,
|
||||
} from "@medusajs/utils"
|
||||
import { z } from "zod"
|
||||
import { createSelectParams } from "../../utils/validators"
|
||||
import { createFindParams, createSelectParams } from "../../utils/validators"
|
||||
|
||||
export const AdminGetShippingOptionParams = createSelectParams()
|
||||
export const AdminListShippingOptionParams = createFindParams({
|
||||
offset: 0,
|
||||
limit: 20,
|
||||
})
|
||||
|
||||
/**
|
||||
* SHIPPING OPTIONS RULES
|
||||
@@ -99,4 +103,4 @@ export const AdminUpdateShippingOption = z
|
||||
|
||||
export type AdminUpdateShippingOptionType = z.infer<
|
||||
typeof AdminUpdateShippingOption
|
||||
>
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user