Files
medusa-store/packages/medusa/src/api/admin/collections/middlewares.ts
2024-09-26 16:38:38 +05:30

73 lines
1.8 KiB
TypeScript

import * as QueryConfig from "./query-config"
import { MiddlewareRoute } from "@medusajs/framework/http"
import { validateAndTransformQuery } from "../../utils/validate-query"
import {
AdminCreateCollection,
AdminGetCollectionParams,
AdminGetCollectionsParams,
AdminUpdateCollection,
} from "./validators"
import { validateAndTransformBody } from "../../utils/validate-body"
import { createLinkBody } from "../../utils/validators"
export const adminCollectionRoutesMiddlewares: MiddlewareRoute[] = [
{
method: ["GET"],
matcher: "/admin/collections",
middlewares: [
validateAndTransformQuery(
AdminGetCollectionsParams,
QueryConfig.listTransformQueryConfig
),
],
},
{
method: ["GET"],
matcher: "/admin/collections/:id",
middlewares: [
validateAndTransformQuery(
AdminGetCollectionParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["POST"],
matcher: "/admin/collections",
middlewares: [
validateAndTransformBody(AdminCreateCollection),
validateAndTransformQuery(
AdminGetCollectionParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["POST"],
matcher: "/admin/collections/:id",
middlewares: [
validateAndTransformBody(AdminUpdateCollection),
validateAndTransformQuery(
AdminGetCollectionParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["DELETE"],
matcher: "/admin/collections/:id",
middlewares: [],
},
{
method: ["POST"],
matcher: "/admin/collections/:id/products",
middlewares: [
validateAndTransformBody(createLinkBody()),
validateAndTransformQuery(
AdminGetCollectionParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
]