chore: Merge master to develop (#3653)

This commit is contained in:
Oliver Windall Juhl
2023-03-31 13:09:57 +02:00
committed by GitHub
parent b2e2eddcea
commit 809ab2e0eb
120 changed files with 2240 additions and 585 deletions
+5 -5
View File
@@ -4,16 +4,16 @@ import { default as wrap } from "./await-middleware"
import { default as normalizeQuery } from "./normalized-query"
import { default as requireCustomerAuthentication } from "./require-customer-authentication"
export { canAccessBatchJob } from "./batch-job/can-access-batch-job"
export { getRequestedBatchJob } from "./batch-job/get-requested-batch-job"
export { doesConditionBelongToDiscount } from "./discount/does-condition-belong-to-discount"
export { transformIncludesOptions } from "./transform-includes-options"
export { transformBody } from "./transform-body"
export { default as authenticate } from "./authenticate"
export { default as authenticateCustomer } from "./authenticate-customer"
export { default as wrapHandler } from "./await-middleware"
export { canAccessBatchJob } from "./batch-job/can-access-batch-job"
export { getRequestedBatchJob } from "./batch-job/get-requested-batch-job"
export { doesConditionBelongToDiscount } from "./discount/does-condition-belong-to-discount"
export { default as normalizeQuery } from "./normalized-query"
export { default as requireCustomerAuthentication } from "./require-customer-authentication"
export { transformBody } from "./transform-body"
export { transformIncludesOptions } from "./transform-includes-options"
export { transformQuery, transformStoreQuery } from "./transform-query"
/**
@@ -25,6 +25,7 @@ import { AddressPayload } from "../../../../types/common"
import { DraftOrderCreateProps } from "../../../../types/draft-orders"
import { validator } from "../../../../utils/validator"
import { IsType } from "../../../../utils/validators/is-type"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/draft-orders
@@ -154,7 +155,7 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
res.status(200).json({ draft_order: cleanResponseData(draftOrder, []) })
}
enum Status {
@@ -13,6 +13,7 @@ import {
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { validator } from "../../../../utils/validator"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/draft-orders/{id}/line-items
@@ -138,7 +139,9 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
res.status(200).json({
draft_order: cleanResponseData(draftOrder, []),
})
})
}
@@ -8,6 +8,7 @@ import {
import { DraftOrder } from "../../../.."
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [delete] /admin/draft-orders/{id}/line-items/{line_id}
@@ -93,6 +94,8 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
res.status(200).json({
draft_order: cleanResponseData(draftOrder, []),
})
})
}
@@ -7,6 +7,7 @@ import {
} from "."
import { DraftOrder } from "../../../.."
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [get] /admin/draft-orders/{id}
@@ -77,5 +78,7 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.json({ draft_order: draftOrder })
res.json({
draft_order: cleanResponseData(draftOrder, []),
})
}
@@ -6,13 +6,14 @@ import {
ProductVariantInventoryService,
} from "../../../../services"
import { MedusaError } from "medusa-core-utils"
import { EntityManager } from "typeorm"
import { Order } from "../../../../models"
import { MedusaError } from "medusa-core-utils"
import {
defaultAdminOrdersFields as defaultOrderFields,
defaultAdminOrdersRelations as defaultOrderRelations,
} from "../../../../types/orders"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/draft-orders/{id}/pay
@@ -119,7 +120,7 @@ export default async (req, res) => {
return order
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
export const reserveQuantityForDraftOrder = async (
@@ -19,6 +19,7 @@ import { CartUpdateProps } from "../../../../types/cart"
import { AddressPayload } from "../../../../types/common"
import { validator } from "../../../../utils/validator"
import { IsType } from "../../../../utils/validators/is-type"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/draft-orders/{id}
@@ -137,7 +138,7 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
res.status(200).json({ draft_order: cleanResponseData(draftOrder, []) })
}
/**
@@ -11,6 +11,7 @@ import { EntityManager } from "typeorm"
import { LineItemUpdate } from "../../../../types/cart"
import { MedusaError } from "medusa-core-utils"
import { validator } from "../../../../utils/validator"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/draft-orders/{id}/line-items/{line_id}
@@ -139,7 +140,9 @@ export default async (req, res) => {
select: defaultAdminDraftOrdersCartFields,
})
res.status(200).json({ draft_order: draftOrder })
res.status(200).json({
draft_order: cleanResponseData(draftOrder, []),
})
})
}
@@ -9,6 +9,7 @@ import {
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/shipping-methods
@@ -97,7 +98,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
/**
@@ -1,6 +1,7 @@
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/archive
@@ -70,7 +71,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersOrderArchiveParams extends FindParams {}
@@ -3,6 +3,7 @@ import { ClaimService, OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/claims/{claim_id}/cancel
@@ -85,7 +86,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersClaimCancel extends FindParams {}
@@ -7,6 +7,7 @@ import {
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/claims/{claim_id}/fulfillments/{fulfillment_id}/cancel
@@ -101,7 +102,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersClaimFulfillmentsCancelParams extends FindParams {}
@@ -7,6 +7,7 @@ import {
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/swaps/{swap_id}/fulfillments/{fulfillment_id}/cancel
@@ -101,7 +102,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
// eslint-disable-next-line max-len
@@ -9,6 +9,7 @@ import { MedusaError } from "medusa-core-utils"
import { EntityManager } from "typeorm"
import { Fulfillment } from "../../../../models"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/fulfillments/{fulfillment_id}/cancel
@@ -108,7 +109,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export const adjustInventoryForCancelledFulfillment = async (
@@ -1,6 +1,7 @@
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/cancel
@@ -69,7 +70,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersOrderCancel extends FindParams {}
@@ -3,6 +3,7 @@ import { OrderService, SwapService } from "../../../../services"
import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/swaps/{swap_id}/cancel
@@ -83,7 +84,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersSwapCancelParams extends FindParams {}
@@ -1,6 +1,7 @@
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/capture
@@ -72,7 +73,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersOrderCaptureParams extends FindParams {}
@@ -1,6 +1,7 @@
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/complete
@@ -72,7 +73,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminPostOrdersOrderCompleteParams extends FindParams {}
@@ -2,6 +2,7 @@ import { ClaimService, OrderService } from "../../../../services"
import { IsArray, IsNotEmpty, IsOptional, IsString } from "class-validator"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/claims/{claim_id}/shipments
@@ -92,7 +93,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
/**
@@ -16,6 +16,7 @@ import { MedusaError } from "medusa-core-utils"
import { EntityManager } from "typeorm"
import { ClaimTypeValue } from "../../../../types/claim"
import { AddressPayload, FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/claims
@@ -254,7 +255,9 @@ export default async (req, res) => {
return {
response_code: 200,
response_body: { order },
response_body: {
order,
},
}
})
})
@@ -288,6 +291,13 @@ export default async (req, res) => {
throw err
}
if (idempotencyKey.response_body.order) {
idempotencyKey.response_body.order = cleanResponseData(
idempotencyKey.response_body.order,
[]
)
}
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body)
}
@@ -18,6 +18,7 @@ import {
import { optionalBooleanMapper } from "../../../../utils/validators/is-boolean"
import { Fulfillment, LineItem } from "../../../../models"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/fulfillment
@@ -150,7 +151,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
export const updateInventoryAndReservations = async (
@@ -10,6 +10,7 @@ import { EntityManager } from "typeorm"
import { OrderService } from "../../../../services"
import { TrackingLink } from "../../../../models"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/shipment
@@ -104,7 +105,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
/**
@@ -10,6 +10,7 @@ import { OrderService, SwapService } from "../../../../services"
import { EntityManager } from "typeorm"
import { validator } from "../../../../utils/validator"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/swaps/{swap_id}/shipments
@@ -102,7 +103,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
/**
@@ -21,6 +21,7 @@ import { EntityManager } from "typeorm"
import { MedusaError } from "medusa-core-utils"
import { Type } from "class-transformer"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/swaps
@@ -219,7 +220,9 @@ export default async (req, res) => {
return {
response_code: 200,
response_body: { order },
response_body: {
order: cleanResponseData(order, []),
},
}
})
})
@@ -1,12 +1,13 @@
import { IsBoolean, IsObject, IsOptional, IsString } from "class-validator"
import {
ClaimService,
OrderService,
ProductVariantInventoryService,
} from "../../../../services"
import { IsBoolean, IsObject, IsOptional, IsString } from "class-validator"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
import { updateInventoryAndReservations } from "./create-fulfillment"
/**
@@ -128,7 +129,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
/**
@@ -6,8 +6,9 @@ import {
} from "../../../../services"
import { EntityManager } from "typeorm"
import { validator } from "../../../../utils/validator"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
import { validator } from "../../../../utils/validator"
import { updateInventoryAndReservations } from "./create-fulfillment"
/**
@@ -134,7 +135,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
/**
@@ -1,7 +1,7 @@
import { Order } from "../../../../models"
import { OrderService } from "../../../../services"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
import { Order } from "../../../../models"
/**
* @oas [get] /admin/orders/{id}
@@ -72,7 +72,7 @@ export default async (req, res) => {
order = cleanResponseData(order, req.allowedProperties)
res.json({ order: order })
res.json({ order: cleanResponseData(order, []) })
}
export class AdminGetOrdersOrderParams extends FindParams {}
@@ -98,7 +98,7 @@ export default (app, featureFlagRouter: FlagRouter) => {
transformIncludesOptions(allowedOrderIncludes),
transformQuery(AdminGetOrdersParams, {
defaultRelations: relations,
defaultFields: defaultAdminOrdersFields,
defaultFields: defaultFields,
isList: true,
}),
middlewares.wrap(require("./list-orders").default)
@@ -1,8 +1,8 @@
import { IsNumber, IsOptional, IsString } from "class-validator"
import { AdminListOrdersSelector } from "../../../../types/orders"
import { OrderService } from "../../../../services"
import { Type } from "class-transformer"
import { OrderService } from "../../../../services"
import { AdminListOrdersSelector } from "../../../../types/orders"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
@@ -208,7 +208,12 @@ export default async (req, res) => {
const data = cleanResponseData(orders, req.allowedProperties)
res.json({ orders: data, count, offset: skip, limit: take })
res.json({
orders: cleanResponseData(data, []),
count,
offset: skip,
limit: take,
})
}
export class AdminGetOrdersParams extends AdminListOrdersSelector {
@@ -2,6 +2,7 @@ import { OrderService, SwapService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/swaps/{swap_id}/process-payment
@@ -73,7 +74,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
// eslint-disable-next-line max-len
@@ -9,6 +9,7 @@ import {
import { OrderService } from "../../../../services"
import { EntityManager } from "typeorm"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/refund
@@ -97,7 +98,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
/**
@@ -6,17 +6,18 @@ import {
IsInt,
IsOptional,
IsString,
ValidateNested
ValidateNested,
} from "class-validator"
import { EntityManager } from "typeorm"
import { Order, Return } from "../../../../models"
import {
EventBusService,
OrderService,
ReturnService
ReturnService,
} from "../../../../services"
import { FindParams } from "../../../../types/common"
import { OrdersReturnItem } from "../../../../types/orders"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/return
@@ -241,7 +242,9 @@ export default async (req, res) => {
return {
response_code: 200,
response_body: { order },
response_body: {
order: cleanResponseData(order, []),
},
}
})
})
@@ -14,6 +14,7 @@ import { Type } from "class-transformer"
import { EntityManager } from "typeorm"
import { validator } from "../../../../utils/validator"
import { FindParams } from "../../../../types/common"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}/claims/{claim_id}
@@ -103,7 +104,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.json({ order: data })
res.json({ order: cleanResponseData(data, []) })
}
/**
@@ -13,6 +13,7 @@ import { AddressPayload, FindParams } from "../../../../types/common"
import { EntityManager } from "typeorm"
import { OrderService } from "../../../../services"
import { Type } from "class-transformer"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /admin/orders/{id}
@@ -96,7 +97,7 @@ export default async (req, res) => {
includes: req.includes,
})
res.status(200).json({ order })
res.status(200).json({ order: cleanResponseData(order, []) })
}
/**
@@ -18,6 +18,7 @@ import { EntityManager } from "typeorm"
import { defaultAdminProductFields, defaultAdminProductRelations } from "."
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { ProductStatus, ProductVariant } from "../../../../models"
import { ProductVariantRepository } from "../../../../repositories/product-variant"
import {
PricingService,
ProductService,
@@ -39,7 +40,6 @@ import {
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
import { DistributedTransaction } from "../../../../utils/transaction"
import { validator } from "../../../../utils/validator"
import { ProductVariantRepository } from "../../../../repositories/product-variant"
import {
createVariantTransaction,
revertVariantTransaction,
@@ -3,7 +3,7 @@ import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import { validator } from "../../../../utils/validator"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/shipping-methods
@@ -62,10 +62,7 @@ import { validator } from "../../../../utils/validator"
export default async (req, res) => {
const { id } = req.params
const validated = await validator(
StorePostCartsCartShippingMethodReq,
req.body
)
const validated = req.validatedBody
const manager: EntityManager = req.scope.resolve("manager")
const cartService: CartService = req.scope.resolve("cartService")
@@ -94,7 +91,7 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
/**
@@ -2,6 +2,7 @@ import { CartService, IdempotencyKeyService } from "../../../../services"
import { EntityManager } from "typeorm"
import { IdempotencyKey } from "../../../../models/idempotency-key"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/taxes
@@ -118,5 +119,12 @@ export default async (req, res) => {
throw err
}
if (idempotencyKey.response_body.cart) {
idempotencyKey.response_body.cart = cleanResponseData(
idempotencyKey.response_body.cart,
[]
)
}
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body)
}
@@ -2,6 +2,7 @@ import { EntityManager } from "typeorm"
import { AbstractCartCompletionStrategy } from "../../../../interfaces"
import { IdempotencyKey } from "../../../../models"
import { IdempotencyKeyService } from "../../../../services"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/complete
@@ -90,5 +91,9 @@ export default async (req, res) => {
req.request_context
)
if (response_body.data) {
response_body.data = cleanResponseData(response_body.data, [])
}
res.status(response_code).json(response_body)
}
@@ -1,6 +1,3 @@
import { EntityManager } from "typeorm"
import { isDefined, MedusaError } from "medusa-core-utils"
import reqIp from "request-ip"
import { Type } from "class-transformer"
import {
IsArray,
@@ -10,18 +7,22 @@ import {
IsString,
ValidateNested,
} from "class-validator"
import { isDefined, MedusaError } from "medusa-core-utils"
import reqIp from "request-ip"
import { EntityManager } from "typeorm"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { Cart, LineItem } from "../../../../models"
import {
CartService,
LineItemService,
RegionService,
} from "../../../../services"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { Cart, LineItem } from "../../../../models"
import { CartCreateProps } from "../../../../types/cart"
import { cleanResponseData } from "../../../../utils/clean-response-data"
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
import { FlagRouter } from "../../../../utils/flag-router"
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { CartCreateProps } from "../../../../types/cart"
/**
* @oas [post] /store/carts
@@ -172,7 +173,7 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart })
res.status(200).json({ cart: cleanResponseData(cart, []) })
}
export class Item {
@@ -11,6 +11,7 @@ import {
runIdempotencyStep,
RunIdempotencyStepOptions,
} from "../../../../../utils/idempotency"
import { cleanResponseData } from "../../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/line-items
@@ -130,6 +131,13 @@ export default async (req, res) => {
throw err
}
if (idempotencyKey.response_body.cart) {
idempotencyKey.response_body.cart = cleanResponseData(
idempotencyKey.response_body.cart,
[]
)
}
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body)
}
@@ -2,6 +2,7 @@ import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import IdempotencyKeyService from "../../../../services/idempotency-key"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/payment-sessions
@@ -133,5 +134,11 @@ export default async (req, res) => {
throw err
}
if (idempotencyKey.response_body.cart) {
idempotencyKey.response_body.data = cleanResponseData(
idempotencyKey.response_body.cart,
[]
)
}
res.status(idempotencyKey.response_code).json(idempotencyKey.response_body)
}
@@ -1,6 +1,7 @@
import { EntityManager } from "typeorm"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [delete] /store/carts/{id}/discounts/{code}
@@ -71,5 +72,5 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
@@ -1,6 +1,7 @@
import { EntityManager } from "typeorm"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [delete] /store/carts/{id}/line-items/{line_id}
@@ -72,5 +73,6 @@ export default async (req, res) => {
select: defaultStoreCartFields,
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
@@ -1,6 +1,7 @@
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [delete] /store/carts/{id}/payment-sessions/{provider_id}
@@ -63,5 +64,5 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
@@ -1,5 +1,6 @@
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [get] /store/carts/{id}
@@ -70,5 +71,5 @@ export default async (req, res) => {
}
const data = await cartService.retrieveWithTotals(id, req.retrieveConfig)
res.json({ cart: data })
res.json({ cart: cleanResponseData(data, []) })
}
@@ -12,6 +12,10 @@ import { StorePostCartReq } from "./create-cart"
import SalesChannelFeatureFlag from "../../../../loaders/feature-flags/sales-channels"
import { extendRequestParams } from "../../../middlewares/publishable-api-key/extend-request-params"
import { validateSalesChannelParam } from "../../../middlewares/publishable-api-key/validate-sales-channel-param"
import { StorePostCartsCartShippingMethodReq } from "./add-shipping-method"
import { StorePostCartsCartPaymentSessionReq } from "./set-payment-session"
import { StorePostCartsCartLineItemsItemReq } from "./update-line-item"
import { StorePostCartsCartPaymentSessionUpdateReq } from "./update-payment-session"
const route = Router()
@@ -43,6 +47,11 @@ export default (app, container) => {
const createMiddlewares = [
middlewareService.usePreCartCreation(),
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartReq),
extendRequestParams,
validateSalesChannelParam,
@@ -56,75 +65,149 @@ export default (app, container) => {
route.post(
"/:id",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartsCartReq),
middlewares.wrap(require("./update-cart").default)
)
route.post(
"/:id/complete",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./complete-cart").default)
)
// DEPRECATION
route.post(
"/:id/complete-cart",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./complete-cart").default)
)
// Line items
route.post(
"/:id/line-items",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./create-line-item").default)
)
route.post(
"/:id/line-items/:line_id",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartsCartLineItemsItemReq),
middlewares.wrap(require("./update-line-item").default)
)
route.delete(
"/:id/line-items/:line_id",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./delete-line-item").default)
)
route.delete(
"/:id/discounts/:code",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./delete-discount").default)
)
// Payment sessions
route.post(
"/:id/payment-sessions",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./create-payment-sessions").default)
)
route.post(
"/:id/payment-sessions/:provider_id",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartsCartPaymentSessionUpdateReq),
middlewares.wrap(require("./update-payment-session").default)
)
route.delete(
"/:id/payment-sessions/:provider_id",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./delete-payment-session").default)
)
route.post(
"/:id/payment-sessions/:provider_id/refresh",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./refresh-payment-session").default)
)
route.post(
"/:id/payment-session",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartsCartPaymentSessionReq),
middlewares.wrap(require("./set-payment-session").default)
)
// Shipping Options
route.post(
"/:id/shipping-methods",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
transformBody(StorePostCartsCartShippingMethodReq),
middlewares.wrap(require("./add-shipping-method").default)
)
// Taxes
route.post(
"/:id/taxes",
transformStoreQuery(FindParams, {
defaultRelations: defaultStoreCartRelations,
defaultFields: defaultStoreCartFields,
isList: false,
}),
middlewares.wrap(require("./calculate-taxes").default)
)
@@ -1,5 +1,6 @@
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/payment-sessions/{provider_id}/refresh
@@ -67,5 +68,5 @@ export default async (req, res) => {
],
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
@@ -3,7 +3,7 @@ import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { EntityManager } from "typeorm"
import { IsString } from "class-validator"
import { validator } from "../../../../utils/validator"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/payment-session
@@ -62,10 +62,7 @@ import { validator } from "../../../../utils/validator"
export default async (req, res) => {
const { id } = req.params
const validated = await validator(
StorePostCartsCartPaymentSessionReq,
req.body
)
const validated = req.validatedBody
const cartService: CartService = req.scope.resolve("cartService")
@@ -81,7 +78,7 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
/**
@@ -14,6 +14,7 @@ import { CartService } from "../../../../services"
import { AddressPayload } from "../../../../types/common"
import { FeatureFlagDecorators } from "../../../../utils/feature-flag-decorators"
import { IsType } from "../../../../utils/validators/is-type"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}
@@ -100,7 +101,7 @@ export default async (req, res) => {
select: defaultStoreCartFields,
relations: defaultStoreCartRelations,
})
res.json({ cart: data })
res.json({ cart: cleanResponseData(data, []) })
}
class GiftCard {
@@ -3,7 +3,7 @@ import { MedusaError } from "medusa-core-utils"
import { EntityManager } from "typeorm"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { validator } from "../../../../utils/validator"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/line-items/{line_id}
@@ -63,10 +63,7 @@ import { validator } from "../../../../utils/validator"
export default async (req, res) => {
const { id, line_id } = req.params
const validated = await validator(
StorePostCartsCartLineItemsItemReq,
req.body
)
const validated = req.validatedBody
const manager: EntityManager = req.scope.resolve("manager")
const cartService: CartService = req.scope.resolve("cartService")
@@ -115,7 +112,7 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
/**
@@ -1,8 +1,8 @@
import { IsObject } from "class-validator"
import { defaultStoreCartFields, defaultStoreCartRelations } from "."
import { CartService } from "../../../../services"
import { validator } from "../../../../utils/validator"
import { EntityManager } from "typeorm"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [post] /store/carts/{id}/payment-sessions/{provider_id}
@@ -64,10 +64,7 @@ import { EntityManager } from "typeorm"
export default async (req, res) => {
const { id, provider_id } = req.params
const validated = await validator(
StorePostCartsCartPaymentSessionUpdateReq,
req.body
)
const validated = req.validatedBody
const cartService: CartService = req.scope.resolve("cartService")
@@ -86,7 +83,7 @@ export default async (req, res) => {
relations: defaultStoreCartRelations,
})
res.status(200).json({ cart: data })
res.status(200).json({ cart: cleanResponseData(data, []) })
}
/**
@@ -1,6 +1,7 @@
import { defaultStoreOrdersFields, defaultStoreOrdersRelations } from "."
import { OrderService } from "../../../../services"
import { cleanResponseData } from "../../../../utils/clean-response-data"
/**
* @oas [get] /store/orders/cart/{cart_id}
@@ -54,5 +55,5 @@ export default async (req, res) => {
relations: defaultStoreOrdersRelations,
})
res.json({ order })
res.json({ order: cleanResponseData(order, []) })
}
@@ -10,6 +10,7 @@ import { StorePostCustomersCustomerOrderClaimReq } from "./request-order"
import { StorePostCustomersCustomerAcceptClaimReq } from "./confirm-order-request"
import { StoreGetOrderParams } from "./get-order"
import { StoreGetOrdersParams } from "./lookup-order"
import { FindParams } from "../../../../types/common"
const route = Router()
@@ -50,6 +51,12 @@ export default (app) => {
*/
route.get(
"/cart/:cart_id",
transformStoreQuery(FindParams, {
defaultFields: defaultStoreOrdersFields,
defaultRelations: defaultStoreOrdersRelations,
allowedFields: allowedStoreOrdersFields,
allowedRelations: allowedStoreOrdersRelations,
}),
middlewares.wrap(require("./get-order-by-cart").default)
)
@@ -1,7 +1,7 @@
import { Router } from "express"
import middlewares, { transformStoreQuery } from "../../../middlewares"
import { ProductCategory } from "../../../../models"
import { PaginatedResponse } from "../../../../types/common"
import middlewares, { transformStoreQuery } from "../../../middlewares"
import listProductCategories, {
StoreGetProductCategoriesParams,
@@ -2,14 +2,14 @@ import { Router } from "express"
import "reflect-metadata"
import { Product } from "../../../.."
import middlewares, { transformStoreQuery } from "../../../middlewares"
import { PaginatedResponse } from "../../../../types/common"
import { FlagRouter } from "../../../../utils/flag-router"
import middlewares, { transformStoreQuery } from "../../../middlewares"
import { extendRequestParams } from "../../../middlewares/publishable-api-key/extend-request-params"
import { validateProductSalesChannelAssociation } from "../../../middlewares/publishable-api-key/validate-product-sales-channel-association"
import { validateSalesChannelParam } from "../../../middlewares/publishable-api-key/validate-sales-channel-param"
import { StoreGetProductsParams } from "./list-products"
import { StoreGetProductsProductParams } from "./get-product"
import { FlagRouter } from "../../../../utils/flag-router"
import { StoreGetProductsParams } from "./list-products"
const route = Router()