From c68ba63c1b4ac551cb53bfb494bf7046e652e083 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Wed, 27 Sep 2023 14:41:50 +0200 Subject: [PATCH] fix(medusa): In product isolation, throw if product not found (#5224) **What** Throw not found error if product does not exists --- .changeset/tricky-pears-walk.md | 5 +++++ .../medusa/src/api/routes/admin/products/get-product.ts | 8 ++++++++ .../medusa/src/api/routes/store/products/get-product.ts | 8 ++++++++ 3 files changed, 21 insertions(+) create mode 100644 .changeset/tricky-pears-walk.md diff --git a/.changeset/tricky-pears-walk.md b/.changeset/tricky-pears-walk.md new file mode 100644 index 0000000000..1ee95d73de --- /dev/null +++ b/.changeset/tricky-pears-walk.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): In product isolation, throw if product not found diff --git a/packages/medusa/src/api/routes/admin/products/get-product.ts b/packages/medusa/src/api/routes/admin/products/get-product.ts index 4270547e32..174231ea2f 100644 --- a/packages/medusa/src/api/routes/admin/products/get-product.ts +++ b/packages/medusa/src/api/routes/admin/products/get-product.ts @@ -1,6 +1,7 @@ import { PricingService, ProductService } from "../../../../services" import IsolateProductDomainFeatureFlag from "../../../../loaders/feature-flags/isolate-product-domain" import { defaultAdminProductRemoteQueryObject } from "./index" +import { MedusaError } from "@medusajs/utils" /** * @oas [get] /admin/products/{id} @@ -100,6 +101,13 @@ async function getProductWithIsolatedProductModule(req, id, retrieveConfig) { const [product] = await remoteQuery(query) + if (!product) { + throw new MedusaError( + MedusaError.Types.NOT_FOUND, + `Product with id: ${id} not found` + ) + } + product.profile_id = product.profile?.id return product diff --git a/packages/medusa/src/api/routes/store/products/get-product.ts b/packages/medusa/src/api/routes/store/products/get-product.ts index 2f79a62ece..18f136fa85 100644 --- a/packages/medusa/src/api/routes/store/products/get-product.ts +++ b/packages/medusa/src/api/routes/store/products/get-product.ts @@ -11,6 +11,7 @@ import { PriceSelectionParams } from "../../../../types/price-selection" import { cleanResponseData } from "../../../../utils" import IsolateProductDomain from "../../../../loaders/feature-flags/isolate-product-domain" import { defaultStoreProductRemoteQueryObject } from "./index" +import { MedusaError } from "@medusajs/utils" /** * @oas [get] /store/products/{id} @@ -176,6 +177,13 @@ async function getProductWithIsolatedProductModule(req, id: string) { const [product] = await remoteQuery(query) + if (!product) { + throw new MedusaError( + MedusaError.Types.NOT_FOUND, + `Product with id: ${id} not found` + ) + } + product.profile_id = product.profile?.id return product