136 lines
3.3 KiB
TypeScript
136 lines
3.3 KiB
TypeScript
import { MiddlewareRoute } from "../../../loaders/helpers/routing/types"
|
|
import { authenticate } from "../../../utils/authenticate-middleware"
|
|
import { validateAndTransformBody } from "../../utils/validate-body"
|
|
import { validateAndTransformQuery } from "../../utils/validate-query"
|
|
import * as QueryConfig from "./query-config"
|
|
import {
|
|
StoreAddCartLineItem,
|
|
StoreAddCartPromotions,
|
|
StoreCalculateCartTaxes,
|
|
StoreCreateCart,
|
|
StoreGetCartsCart,
|
|
StoreRemoveCartPromotions,
|
|
StoreUpdateCart,
|
|
StoreUpdateCartLineItem,
|
|
} from "./validators"
|
|
|
|
export const storeCartRoutesMiddlewares: MiddlewareRoute[] = [
|
|
{
|
|
method: "ALL",
|
|
matcher: "/store/carts*",
|
|
middlewares: [
|
|
authenticate("store", ["session", "bearer"], {
|
|
allowUnauthenticated: true,
|
|
}),
|
|
],
|
|
},
|
|
{
|
|
method: ["GET"],
|
|
matcher: "/store/carts/:id",
|
|
middlewares: [
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreCreateCart),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreUpdateCart),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id/line-items",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreAddCartLineItem),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id/line-items/:line_id",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreUpdateCartLineItem),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["DELETE"],
|
|
matcher: "/store/carts/:id/line-items/:line_id",
|
|
middlewares: [
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id/promotions",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreAddCartPromotions),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id/taxes",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreCalculateCartTaxes),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["POST"],
|
|
matcher: "/store/carts/:id/payment-collections",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreUpdateCart),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
{
|
|
method: ["DELETE"],
|
|
matcher: "/store/carts/:id/promotions",
|
|
middlewares: [
|
|
validateAndTransformBody(StoreRemoveCartPromotions),
|
|
validateAndTransformQuery(
|
|
StoreGetCartsCart,
|
|
QueryConfig.retrieveTransformQueryConfig
|
|
),
|
|
],
|
|
},
|
|
]
|