@mercurjs/b2c-core 1.5.0 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/api/admin/custom/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/middlewares.js +8 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.js +16 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.d.ts +7 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.js +48 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.d.ts +100 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.js +133 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.d.ts +19 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.js +31 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.d.ts +327 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.js +34 -0
- package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +36 -0
- package/.medusa/server/src/api/admin/middlewares.js +13 -7
- package/.medusa/server/src/api/admin/notifications/route.js +8 -8
- package/.medusa/server/src/api/admin/orders/[id]/route.d.ts +3 -3
- package/.medusa/server/src/api/admin/orders/[id]/route.js +6 -6
- package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/orders/middlewares.js +17 -0
- package/.medusa/server/src/api/admin/products/validators.d.ts +98 -98
- package/.medusa/server/src/api/admin/reservations/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/reservations/middlewares.js +12 -0
- package/.medusa/server/src/api/admin/sellers/validators.d.ts +2 -2
- package/.medusa/server/src/api/admin/sellers/validators.js +9 -7
- package/.medusa/server/src/api/store/carts/[id]/line-items/[line_id]/route.js +2 -2
- package/.medusa/server/src/api/store/carts/[id]/promotions/route.js +3 -4
- package/.medusa/server/src/api/store/carts/[id]/route.d.ts +6 -0
- package/.medusa/server/src/api/store/carts/[id]/route.js +32 -0
- package/.medusa/server/src/api/store/carts/middlewares.js +4 -5
- package/.medusa/server/src/api/store/middlewares.js +11 -9
- package/.medusa/server/src/api/store/products/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/store/products/middlewares.js +13 -0
- package/.medusa/server/src/api/store/products/search/route.d.ts +81 -0
- package/.medusa/server/src/api/store/products/search/route.js +170 -0
- package/.medusa/server/src/api/store/products/validators.d.ts +36 -0
- package/.medusa/server/src/api/store/products/validators.js +17 -0
- package/.medusa/server/src/api/store/wishlist/middlewares.d.ts +1 -1
- package/.medusa/server/src/api/store/wishlist/middlewares.js +47 -25
- package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts +3 -9
- package/.medusa/server/src/api/store/wishlist/product/[reference_id]/route.js +65 -0
- package/.medusa/server/src/api/store/wishlist/route.d.ts +789 -28
- package/.medusa/server/src/api/store/wishlist/route.js +816 -37
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +22 -44
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +31 -46
- package/.medusa/server/src/api/vendor/campaigns/middlewares.js +30 -18
- package/.medusa/server/src/api/vendor/campaigns/query-config.js +2 -2
- package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +11 -0
- package/.medusa/server/src/api/vendor/campaigns/validators.js +6 -5
- package/.medusa/server/src/api/vendor/customer-groups/validators.js +1 -1
- package/.medusa/server/src/api/vendor/customers/route.js +2 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +2 -5
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/batch/route.js +2 -2
- package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +8 -8
- package/.medusa/server/src/api/vendor/me/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/me/route.js +1 -1
- package/.medusa/server/src/api/vendor/members/[id]/route.js +3 -3
- package/.medusa/server/src/api/vendor/orders/validators.d.ts +4 -4
- package/.medusa/server/src/api/vendor/payout-account/route.js +3 -2
- package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.d.ts +2 -2
- package/.medusa/server/src/api/vendor/price-lists/[id]/prices/route.js +2 -2
- package/.medusa/server/src/api/vendor/price-lists/route.d.ts +1 -1
- package/.medusa/server/src/api/vendor/price-lists/route.js +27 -8
- package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/product-collections/middlewares.js +2 -2
- package/.medusa/server/src/api/vendor/product-collections/route.d.ts +18 -0
- package/.medusa/server/src/api/vendor/product-collections/route.js +19 -1
- package/.medusa/server/src/api/vendor/product-collections/validators.d.ts +404 -15
- package/.medusa/server/src/api/vendor/product-collections/validators.js +18 -3
- package/.medusa/server/src/api/vendor/product-tags/route.d.ts +4 -1
- package/.medusa/server/src/api/vendor/product-tags/route.js +8 -8
- package/.medusa/server/src/api/vendor/product-types/validators.d.ts +153 -1
- package/.medusa/server/src/api/vendor/product-types/validators.js +6 -3
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.d.ts +3 -0
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +20 -0
- package/.medusa/server/src/api/vendor/products/batch/route.d.ts +34 -0
- package/.medusa/server/src/api/vendor/products/batch/route.js +79 -0
- package/.medusa/server/src/api/vendor/products/middlewares.js +19 -5
- package/.medusa/server/src/api/vendor/products/route.d.ts +8 -2
- package/.medusa/server/src/api/vendor/products/route.js +29 -21
- package/.medusa/server/src/api/vendor/products/utils.d.ts +35 -1
- package/.medusa/server/src/api/vendor/products/utils.js +148 -6
- package/.medusa/server/src/api/vendor/products/validators.d.ts +275 -99
- package/.medusa/server/src/api/vendor/products/validators.js +58 -2
- package/.medusa/server/src/api/vendor/promotions/route.d.ts +86 -2
- package/.medusa/server/src/api/vendor/promotions/route.js +116 -7
- package/.medusa/server/src/api/vendor/promotions/validators.d.ts +237 -38
- package/.medusa/server/src/api/vendor/promotions/validators.js +23 -5
- package/.medusa/server/src/api/vendor/reservations/middlewares.d.ts +4 -1
- package/.medusa/server/src/api/vendor/reservations/middlewares.js +23 -3
- package/.medusa/server/src/api/vendor/reservations/route.js +5 -3
- package/.medusa/server/src/api/vendor/reservations/validators.d.ts +45 -3
- package/.medusa/server/src/api/vendor/reservations/validators.js +5 -1
- package/.medusa/server/src/api/vendor/sellers/validators.js +1 -1
- package/.medusa/server/src/api/vendor/shipping-profiles/route.d.ts +31 -2
- package/.medusa/server/src/api/vendor/shipping-profiles/route.js +61 -10
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.d.ts +92 -3
- package/.medusa/server/src/api/vendor/shipping-profiles/validators.js +10 -2
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.js +1 -1
- package/.medusa/server/src/api/vendor/stock-locations/validators.d.ts +10 -10
- package/.medusa/server/src/links/wishlist-product.js +3 -3
- package/.medusa/server/src/modules/payout/services/provider.js +1 -2
- package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.d.ts +5 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20260114091400.js +32 -0
- package/.medusa/server/src/modules/seller/service.js +2 -2
- package/.medusa/server/src/modules/seller/utils.d.ts +1 -1
- package/.medusa/server/src/modules/seller/utils.js +37 -10
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.d.ts +16 -7
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.js +26 -18
- package/.medusa/server/src/shared/infra/http/middlewares/index.d.ts +1 -0
- package/.medusa/server/src/shared/infra/http/middlewares/index.js +2 -1
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.d.ts +19 -0
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.js +28 -0
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-attribute-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/utils/products.js +9 -3
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.d.ts +1 -3
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.js +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.d.ts +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.js +44 -37
- package/.medusa/server/src/subscribers/payout-webhook.js +1 -1
- package/.medusa/server/src/subscribers/seller-status-changed.js +2 -3
- package/.medusa/server/src/utils/stock-locations.d.ts +9 -0
- package/.medusa/server/src/utils/stock-locations.js +231 -0
- package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +1 -1
- package/.medusa/server/src/workflows/attribute/steps/validate-attribute-value.js +7 -3
- package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.d.ts +3 -3
- package/.medusa/server/src/workflows/attribute/utils/products-updated-handler.js +17 -15
- package/.medusa/server/src/workflows/attribute/utils/validate-attribute-values-to-link.js +2 -2
- package/.medusa/server/src/workflows/cart/steps/create-order-set.js +1 -1
- package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +1 -1
- package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +5 -7
- package/.medusa/server/src/workflows/configuration/steps/create-configuration-rule.js +1 -1
- package/.medusa/server/src/workflows/fulfillment-set/create-vendor-service-zone.js +2 -2
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.js +75 -0
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +97 -0
- package/.medusa/server/src/workflows/hooks/product-deleted.js +12 -5
- package/.medusa/server/src/workflows/order/steps/create-payout.js +1 -1
- package/.medusa/server/src/workflows/order/steps/validate-seller-payout-account.js +2 -2
- package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +1 -1
- package/.medusa/server/src/workflows/price-list/steps/validate-vendor-price-list-prices.js +2 -2
- package/.medusa/server/src/workflows/price-list/workflows/create-vendor-price-list.js +2 -2
- package/.medusa/server/src/workflows/product/steps/update-product-status.js +7 -1
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts +24 -0
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js +39 -0
- package/.medusa/server/src/workflows/product-variants/index.d.ts +3 -0
- package/.medusa/server/src/workflows/product-variants/index.js +20 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.js +63 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.js +28 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.js +19 -0
- package/.medusa/server/src/workflows/product-variants/types.d.ts +10 -0
- package/.medusa/server/src/workflows/product-variants/types.js +3 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts +31 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js +115 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts +8 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js +87 -0
- package/.medusa/server/src/workflows/promotions/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/promotions/steps/index.js +3 -1
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.d.ts +6 -0
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +43 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.d.ts +5 -0
- package/.medusa/server/src/workflows/promotions/steps/verify-vendor-target-promotion-rules.js +27 -11
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.d.ts +2 -0
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.js +165 -0
- package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +7 -2
- package/.medusa/server/src/workflows/promotions/workflows/create-vendor-promotion.js +4 -3
- package/.medusa/server/src/workflows/seller/steps/create-member.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payment-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payout-onboarding.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/sync-stripe-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/update-member-invite.js +3 -3
- package/.medusa/server/src/workflows/seller/steps/update-seller.js +2 -3
- package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +28 -23
- package/.medusa/server/src/workflows/seller/workflows/import-seller-products.js +2 -2
- package/.medusa/server/src/workflows/wishlist/steps/create-wishlist.js +1 -1
- package/package.json +1 -1
- package/.medusa/server/src/api/store/wishlist/[id]/product/[reference_id]/route.js +0 -61
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { MedusaRequest, MedusaResponse } from '@medusajs/framework';
|
|
2
|
+
import { StoreSearchProductsType } from '../validators';
|
|
3
|
+
/**
|
|
4
|
+
* @oas [post] /store/products/search
|
|
5
|
+
* operationId: "StoreSearchProducts"
|
|
6
|
+
* summary: "Search products"
|
|
7
|
+
* description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
|
|
8
|
+
* requestBody:
|
|
9
|
+
* content:
|
|
10
|
+
* application/json:
|
|
11
|
+
* schema:
|
|
12
|
+
* type: object
|
|
13
|
+
* properties:
|
|
14
|
+
* query:
|
|
15
|
+
* type: string
|
|
16
|
+
* description: The search query string
|
|
17
|
+
* page:
|
|
18
|
+
* type: number
|
|
19
|
+
* description: The page number (0-indexed)
|
|
20
|
+
* hitsPerPage:
|
|
21
|
+
* type: number
|
|
22
|
+
* description: Number of results per page
|
|
23
|
+
* filters:
|
|
24
|
+
* type: string
|
|
25
|
+
* description: Algolia filter string
|
|
26
|
+
* facets:
|
|
27
|
+
* type: array
|
|
28
|
+
* items:
|
|
29
|
+
* type: string
|
|
30
|
+
* description: Array of facet attributes to retrieve
|
|
31
|
+
* maxValuesPerFacet:
|
|
32
|
+
* type: number
|
|
33
|
+
* description: Maximum number of facet values to return per facet
|
|
34
|
+
* currency_code:
|
|
35
|
+
* type: string
|
|
36
|
+
* description: Currency code for price calculation
|
|
37
|
+
* region_id:
|
|
38
|
+
* type: string
|
|
39
|
+
* description: Region ID for price calculation
|
|
40
|
+
* customer_id:
|
|
41
|
+
* type: string
|
|
42
|
+
* description: Customer ID for customer-specific price calculation
|
|
43
|
+
* customer_group_id:
|
|
44
|
+
* type: array
|
|
45
|
+
* items:
|
|
46
|
+
* type: string
|
|
47
|
+
* description: Customer group IDs for group-specific price calculation
|
|
48
|
+
* responses:
|
|
49
|
+
* "200":
|
|
50
|
+
* description: OK
|
|
51
|
+
* content:
|
|
52
|
+
* application/json:
|
|
53
|
+
* schema:
|
|
54
|
+
* type: object
|
|
55
|
+
* properties:
|
|
56
|
+
* products:
|
|
57
|
+
* type: array
|
|
58
|
+
* items:
|
|
59
|
+
* type: object
|
|
60
|
+
* nbHits:
|
|
61
|
+
* type: number
|
|
62
|
+
* description: Total number of matching products
|
|
63
|
+
* page:
|
|
64
|
+
* type: number
|
|
65
|
+
* description: Current page number
|
|
66
|
+
* nbPages:
|
|
67
|
+
* type: number
|
|
68
|
+
* description: Total number of pages
|
|
69
|
+
* hitsPerPage:
|
|
70
|
+
* type: number
|
|
71
|
+
* description: Number of results per page
|
|
72
|
+
* facets:
|
|
73
|
+
* type: object
|
|
74
|
+
* description: Facet values and counts
|
|
75
|
+
* processingTimeMS:
|
|
76
|
+
* type: number
|
|
77
|
+
* description: Algolia processing time in milliseconds
|
|
78
|
+
* tags:
|
|
79
|
+
* - Store Products
|
|
80
|
+
*/
|
|
81
|
+
export declare const POST: (req: MedusaRequest<StoreSearchProductsType>, res: MedusaResponse) => Promise<MedusaResponse | undefined>;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const framework_1 = require("@mercurjs/framework");
|
|
6
|
+
/**
|
|
7
|
+
* @oas [post] /store/products/search
|
|
8
|
+
* operationId: "StoreSearchProducts"
|
|
9
|
+
* summary: "Search products"
|
|
10
|
+
* description: "Searches products using Algolia and returns hydrated product data from the database. Only product IDs are retrieved from Algolia to avoid the 10KB response limit, all product data is fetched from the database."
|
|
11
|
+
* requestBody:
|
|
12
|
+
* content:
|
|
13
|
+
* application/json:
|
|
14
|
+
* schema:
|
|
15
|
+
* type: object
|
|
16
|
+
* properties:
|
|
17
|
+
* query:
|
|
18
|
+
* type: string
|
|
19
|
+
* description: The search query string
|
|
20
|
+
* page:
|
|
21
|
+
* type: number
|
|
22
|
+
* description: The page number (0-indexed)
|
|
23
|
+
* hitsPerPage:
|
|
24
|
+
* type: number
|
|
25
|
+
* description: Number of results per page
|
|
26
|
+
* filters:
|
|
27
|
+
* type: string
|
|
28
|
+
* description: Algolia filter string
|
|
29
|
+
* facets:
|
|
30
|
+
* type: array
|
|
31
|
+
* items:
|
|
32
|
+
* type: string
|
|
33
|
+
* description: Array of facet attributes to retrieve
|
|
34
|
+
* maxValuesPerFacet:
|
|
35
|
+
* type: number
|
|
36
|
+
* description: Maximum number of facet values to return per facet
|
|
37
|
+
* currency_code:
|
|
38
|
+
* type: string
|
|
39
|
+
* description: Currency code for price calculation
|
|
40
|
+
* region_id:
|
|
41
|
+
* type: string
|
|
42
|
+
* description: Region ID for price calculation
|
|
43
|
+
* customer_id:
|
|
44
|
+
* type: string
|
|
45
|
+
* description: Customer ID for customer-specific price calculation
|
|
46
|
+
* customer_group_id:
|
|
47
|
+
* type: array
|
|
48
|
+
* items:
|
|
49
|
+
* type: string
|
|
50
|
+
* description: Customer group IDs for group-specific price calculation
|
|
51
|
+
* responses:
|
|
52
|
+
* "200":
|
|
53
|
+
* description: OK
|
|
54
|
+
* content:
|
|
55
|
+
* application/json:
|
|
56
|
+
* schema:
|
|
57
|
+
* type: object
|
|
58
|
+
* properties:
|
|
59
|
+
* products:
|
|
60
|
+
* type: array
|
|
61
|
+
* items:
|
|
62
|
+
* type: object
|
|
63
|
+
* nbHits:
|
|
64
|
+
* type: number
|
|
65
|
+
* description: Total number of matching products
|
|
66
|
+
* page:
|
|
67
|
+
* type: number
|
|
68
|
+
* description: Current page number
|
|
69
|
+
* nbPages:
|
|
70
|
+
* type: number
|
|
71
|
+
* description: Total number of pages
|
|
72
|
+
* hitsPerPage:
|
|
73
|
+
* type: number
|
|
74
|
+
* description: Number of results per page
|
|
75
|
+
* facets:
|
|
76
|
+
* type: object
|
|
77
|
+
* description: Facet values and counts
|
|
78
|
+
* processingTimeMS:
|
|
79
|
+
* type: number
|
|
80
|
+
* description: Algolia processing time in milliseconds
|
|
81
|
+
* tags:
|
|
82
|
+
* - Store Products
|
|
83
|
+
*/
|
|
84
|
+
const POST = async (req, res) => {
|
|
85
|
+
const algoliaService = req.scope.resolve(framework_1.ALGOLIA_MODULE);
|
|
86
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
87
|
+
const { query: searchQuery, page, hitsPerPage, filters, facets, maxValuesPerFacet, currency_code, region_id, customer_id, customer_group_id } = req.validatedBody;
|
|
88
|
+
const searchParams = {
|
|
89
|
+
query: searchQuery,
|
|
90
|
+
page,
|
|
91
|
+
hitsPerPage,
|
|
92
|
+
attributesToRetrieve: ['id'],
|
|
93
|
+
attributesToHighlight: []
|
|
94
|
+
};
|
|
95
|
+
if (filters) {
|
|
96
|
+
searchParams.filters = filters;
|
|
97
|
+
}
|
|
98
|
+
if (facets) {
|
|
99
|
+
searchParams.facets = facets;
|
|
100
|
+
}
|
|
101
|
+
if (maxValuesPerFacet) {
|
|
102
|
+
searchParams.maxValuesPerFacet = maxValuesPerFacet;
|
|
103
|
+
}
|
|
104
|
+
const algoliaResult = await algoliaService.search(framework_1.IndexType.PRODUCT, searchParams);
|
|
105
|
+
const productIds = algoliaResult.hits.map((hit) => hit.id);
|
|
106
|
+
if (productIds.length === 0) {
|
|
107
|
+
return res.json({
|
|
108
|
+
products: [],
|
|
109
|
+
nbHits: algoliaResult.nbHits,
|
|
110
|
+
page: algoliaResult.page,
|
|
111
|
+
nbPages: algoliaResult.nbPages,
|
|
112
|
+
hitsPerPage: algoliaResult.hitsPerPage,
|
|
113
|
+
facets: algoliaResult.facets,
|
|
114
|
+
facets_stats: algoliaResult.facets_stats,
|
|
115
|
+
processingTimeMS: algoliaResult.processingTimeMS,
|
|
116
|
+
query: algoliaResult.query
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
const hasPricingContext = currency_code || region_id || customer_id || customer_group_id;
|
|
120
|
+
const contextParams = {};
|
|
121
|
+
if (hasPricingContext) {
|
|
122
|
+
contextParams.variants = {
|
|
123
|
+
calculated_price: (0, utils_1.QueryContext)({
|
|
124
|
+
...(currency_code && { currency_code }),
|
|
125
|
+
...(region_id && { region_id }),
|
|
126
|
+
...(customer_id && { customer_id }),
|
|
127
|
+
...(customer_group_id && { customer_group_id })
|
|
128
|
+
})
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const { data: products } = await query.graph({
|
|
132
|
+
entity: 'product',
|
|
133
|
+
fields: [
|
|
134
|
+
'*',
|
|
135
|
+
'images.*',
|
|
136
|
+
'options.*',
|
|
137
|
+
'options.values.*',
|
|
138
|
+
'variants.*',
|
|
139
|
+
'variants.options.*',
|
|
140
|
+
'variants.prices.*',
|
|
141
|
+
...(hasPricingContext ? ['variants.calculated_price.*'] : []),
|
|
142
|
+
'categories.*',
|
|
143
|
+
'collection.*',
|
|
144
|
+
'type.*',
|
|
145
|
+
'tags.*',
|
|
146
|
+
'seller.*'
|
|
147
|
+
],
|
|
148
|
+
filters: {
|
|
149
|
+
id: productIds
|
|
150
|
+
},
|
|
151
|
+
...(Object.keys(contextParams).length > 0 && { context: contextParams })
|
|
152
|
+
});
|
|
153
|
+
const productMap = new Map(products.map((p) => [p.id, p]));
|
|
154
|
+
const orderedProducts = productIds
|
|
155
|
+
.map((id) => productMap.get(id))
|
|
156
|
+
.filter(Boolean);
|
|
157
|
+
res.json({
|
|
158
|
+
products: orderedProducts,
|
|
159
|
+
nbHits: algoliaResult.nbHits,
|
|
160
|
+
page: algoliaResult.page,
|
|
161
|
+
nbPages: algoliaResult.nbPages,
|
|
162
|
+
hitsPerPage: algoliaResult.hitsPerPage,
|
|
163
|
+
facets: algoliaResult.facets,
|
|
164
|
+
facets_stats: algoliaResult.facets_stats,
|
|
165
|
+
processingTimeMS: algoliaResult.processingTimeMS,
|
|
166
|
+
query: algoliaResult.query
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
exports.POST = POST;
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3RzL3NlYXJjaC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFHa0M7QUFDbEMsbURBSTRCO0FBUTVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZFRztBQUNJLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkMsRUFDM0MsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBYyxDQUFDLENBQUE7SUFDL0UsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLEtBQUssRUFBRSxXQUFXLEVBQ2xCLElBQUksRUFDSixXQUFXLEVBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsYUFBYSxFQUNiLFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUVyQixNQUFNLFlBQVksR0FBNEI7UUFDNUMsS0FBSyxFQUFFLFdBQVc7UUFDbEIsSUFBSTtRQUNKLFdBQVc7UUFDWCxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQztRQUM1QixxQkFBcUIsRUFBRSxFQUFFO0tBQzFCLENBQUE7SUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osWUFBWSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUE7SUFDaEMsQ0FBQztJQUNELElBQUksTUFBTSxFQUFFLENBQUM7UUFDWCxZQUFZLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUM5QixDQUFDO0lBQ0Qs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
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type StoreSearchProductsType = z.infer<typeof StoreSearchProductsSchema>;
|
|
3
|
+
export declare const StoreSearchProductsSchema: z.ZodObject<{
|
|
4
|
+
query: z.ZodDefault<z.ZodString>;
|
|
5
|
+
page: z.ZodDefault<z.ZodNumber>;
|
|
6
|
+
hitsPerPage: z.ZodDefault<z.ZodNumber>;
|
|
7
|
+
filters: z.ZodOptional<z.ZodString>;
|
|
8
|
+
facets: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
9
|
+
maxValuesPerFacet: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
currency_code: z.ZodOptional<z.ZodString>;
|
|
11
|
+
region_id: z.ZodOptional<z.ZodString>;
|
|
12
|
+
customer_id: z.ZodOptional<z.ZodString>;
|
|
13
|
+
customer_group_id: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
query: string;
|
|
16
|
+
page: number;
|
|
17
|
+
hitsPerPage: number;
|
|
18
|
+
filters?: string | undefined;
|
|
19
|
+
facets?: string[] | undefined;
|
|
20
|
+
maxValuesPerFacet?: number | undefined;
|
|
21
|
+
currency_code?: string | undefined;
|
|
22
|
+
region_id?: string | undefined;
|
|
23
|
+
customer_id?: string | undefined;
|
|
24
|
+
customer_group_id?: string[] | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
query?: string | undefined;
|
|
27
|
+
page?: number | undefined;
|
|
28
|
+
hitsPerPage?: number | undefined;
|
|
29
|
+
filters?: string | undefined;
|
|
30
|
+
facets?: string[] | undefined;
|
|
31
|
+
maxValuesPerFacet?: number | undefined;
|
|
32
|
+
currency_code?: string | undefined;
|
|
33
|
+
region_id?: string | undefined;
|
|
34
|
+
customer_id?: string | undefined;
|
|
35
|
+
customer_group_id?: string[] | undefined;
|
|
36
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StoreSearchProductsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.StoreSearchProductsSchema = zod_1.z.object({
|
|
6
|
+
query: zod_1.z.string().default(''),
|
|
7
|
+
page: zod_1.z.coerce.number().int().min(0).default(0),
|
|
8
|
+
hitsPerPage: zod_1.z.coerce.number().int().min(1).max(100).default(12),
|
|
9
|
+
filters: zod_1.z.string().optional(),
|
|
10
|
+
facets: zod_1.z.array(zod_1.z.string()).optional(),
|
|
11
|
+
maxValuesPerFacet: zod_1.z.coerce.number().int().min(1).max(1000).optional(),
|
|
12
|
+
currency_code: zod_1.z.string().length(3).optional(),
|
|
13
|
+
region_id: zod_1.z.string().optional(),
|
|
14
|
+
customer_id: zod_1.z.string().optional(),
|
|
15
|
+
customer_group_id: zod_1.z.array(zod_1.z.string()).optional()
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvcHJvZHVjdHMvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBdUI7QUFJVixRQUFBLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEQsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQzdCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNoRSxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixNQUFNLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RSxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUMsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsaUJBQWlCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDbEQsQ0FBQyxDQUFBIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { MiddlewareRoute } from
|
|
1
|
+
import { MiddlewareRoute } from "@medusajs/medusa";
|
|
2
2
|
export declare const storeWishlistMiddlewares: MiddlewareRoute[];
|
|
@@ -1,39 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.storeWishlistMiddlewares = void 0;
|
|
7
4
|
const framework_1 = require("@medusajs/framework");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const query_config_1 = require("
|
|
11
|
-
const validators_1 = require("
|
|
5
|
+
const medusa_1 = require("@medusajs/medusa");
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const query_config_1 = require("@medusajs/medusa/api/store/products/query-config");
|
|
8
|
+
const validators_1 = require("@medusajs/medusa/api/store/products/validators");
|
|
9
|
+
const query_config_2 = require("./query-config");
|
|
10
|
+
const validators_2 = require("./validators");
|
|
11
|
+
const http_1 = require("@medusajs/framework/http");
|
|
12
|
+
const index_1 = require("@medusajs/medusa/api/utils/middlewares/index");
|
|
12
13
|
exports.storeWishlistMiddlewares = [
|
|
13
14
|
{
|
|
14
|
-
method: [
|
|
15
|
-
matcher:
|
|
15
|
+
method: ["GET"],
|
|
16
|
+
matcher: "/store/wishlist",
|
|
16
17
|
middlewares: [
|
|
17
|
-
(0,
|
|
18
|
-
|
|
18
|
+
(0, medusa_1.authenticate)("customer", ["bearer", "session"]),
|
|
19
|
+
(0, framework_1.validateAndTransformQuery)(validators_1.StoreGetProductsParams, query_config_1.listProductQueryConfig),
|
|
20
|
+
(0, index_1.filterByValidSalesChannels)(),
|
|
21
|
+
(0, http_1.maybeApplyLinkFilter)({
|
|
22
|
+
entryPoint: "product_sales_channel",
|
|
23
|
+
resourceId: "product_id",
|
|
24
|
+
filterableField: "sales_channel_id",
|
|
25
|
+
}),
|
|
26
|
+
(0, http_1.applyDefaultFilters)({
|
|
27
|
+
status: utils_1.ProductStatus.PUBLISHED,
|
|
28
|
+
// TODO: the type here seems off and the implementation does not take into account $and and $or possible filters. Might be worth re working (original type used here was StoreGetProductsParamsType)
|
|
29
|
+
categories: (filters, _fields) => {
|
|
30
|
+
const categoryIds = filters.category_id;
|
|
31
|
+
delete filters.category_id;
|
|
32
|
+
if (!(0, utils_1.isPresent)(categoryIds)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
return { id: categoryIds, is_internal: false, is_active: true };
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
(0, index_1.normalizeDataForContext)(),
|
|
39
|
+
(0, index_1.setPricingContext)(),
|
|
40
|
+
(0, index_1.setTaxContext)(),
|
|
41
|
+
(0, http_1.clearFiltersByKey)(["region_id", "country_code", "province", "cart_id"]),
|
|
42
|
+
],
|
|
19
43
|
},
|
|
20
44
|
{
|
|
21
|
-
method: [
|
|
22
|
-
matcher:
|
|
45
|
+
method: ["POST"],
|
|
46
|
+
matcher: "/store/wishlist",
|
|
23
47
|
middlewares: [
|
|
24
|
-
(0,
|
|
25
|
-
(0, framework_1.
|
|
26
|
-
|
|
48
|
+
(0, medusa_1.authenticate)("customer", ["bearer", "session"]),
|
|
49
|
+
(0, framework_1.validateAndTransformQuery)(validators_2.StoreGetWishlistsParams, query_config_2.storeWishlistQueryConfig.retrieve),
|
|
50
|
+
(0, framework_1.validateAndTransformBody)(validators_2.StoreCreateWishlist),
|
|
51
|
+
],
|
|
27
52
|
},
|
|
28
53
|
{
|
|
29
|
-
method: [
|
|
30
|
-
matcher:
|
|
54
|
+
method: ["DELETE"],
|
|
55
|
+
matcher: "/store/wishlist/product/:reference_id",
|
|
31
56
|
middlewares: [
|
|
32
|
-
(0,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
})
|
|
36
|
-
]
|
|
37
|
-
}
|
|
57
|
+
(0, medusa_1.authenticate)("customer", ["bearer", "session"]),
|
|
58
|
+
],
|
|
59
|
+
},
|
|
38
60
|
];
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUc2QjtBQUM3Qiw2Q0FBaUU7QUFFakUscURBQXFFO0FBQ3JFLG1GQUEwRjtBQUMxRiwrRUFBd0Y7QUFDeEYsaURBQTBEO0FBQzFELDZDQUE0RTtBQUU1RSxtREFJa0M7QUFDbEMsd0VBS3NEO0FBRXpDLFFBQUEsd0JBQXdCLEdBQXNCO0lBQ3pEO1FBQ0UsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixXQUFXLEVBQUU7WUFDWCxJQUFBLHFCQUFZLEVBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLElBQUEscUNBQXlCLEVBQUMsbUNBQXNCLEVBQUUscUNBQXNCLENBQUM7WUFDekUsSUFBQSxrQ0FBMEIsR0FBRTtZQUM1QixJQUFBLDJCQUFvQixFQUFDO2dCQUNuQixVQUFVLEVBQUUsdUJBQXVCO2dCQUNuQyxVQUFVLEVBQUUsWUFBWTtnQkFDeEIsZUFBZSxFQUFFLGtCQUFrQjthQUNwQyxDQUFDO1lBQ0YsSUFBQSwwQkFBbUIsRUFBQztnQkFDbEIsTUFBTSxFQUFFLHFCQUFhLENBQUMsU0FBUztnQkFDL0Isb01BQW9NO2dCQUNwTSxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQUUsT0FBaUIsRUFBRSxFQUFFO29CQUM5QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO29CQUN4QyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUM7b0JBRTNCLElBQUksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUIsT0FBTztvQkFDVCxDQUFDO29CQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNsRSxDQUFDO2FBQ0YsQ0FBQztZQUNGLElBQUEsK0JBQXVCLEdBQUU7WUFDekIsSUFBQSx5QkFBaUIsR0FBRTtZQUNuQixJQUFBLHFCQUFhLEdBQUU7WUFDZixJQUFBLHdCQUFpQixFQUFDLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEU7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxJQUFBLHFDQUF5QixFQUN2QixvQ0FBdUIsRUFDdkIsdUNBQXdCLENBQUMsUUFBUSxDQUNsQztZQUNELElBQUEsb0NBQXdCLEVBQUMsZ0NBQW1CLENBQUM7U0FDOUM7S0FDRjtJQUNEO1FBQ0UsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSx1Q0FBdUM7UUFDaEQsV0FBVyxFQUFFO1lBQ1gsSUFBQSxxQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNoRDtLQUNGO0NBQ0YsQ0FBQyJ9
|
package/.medusa/server/src/api/store/wishlist/{[id]/product → product}/[reference_id]/route.d.ts
RENAMED
|
@@ -1,21 +1,15 @@
|
|
|
1
1
|
import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework';
|
|
2
2
|
/**
|
|
3
|
-
* @oas [delete] /store/wishlist/
|
|
3
|
+
* @oas [delete] /store/wishlist/product/{reference_id}
|
|
4
4
|
* operationId: "StoreDeleteWishlist"
|
|
5
5
|
* summary: "Delete a wishlist entry"
|
|
6
|
-
* description: "
|
|
6
|
+
* description: "Removes an item from the wishlist of the currently authenticated user. The wishlist is resolved from the logged-in customer."
|
|
7
7
|
* x-authenticated: true
|
|
8
8
|
* parameters:
|
|
9
|
-
* - name: id
|
|
10
|
-
* in: path
|
|
11
|
-
* required: true
|
|
12
|
-
* description: The ID of the wishlist entry to delete.
|
|
13
|
-
* schema:
|
|
14
|
-
* type: string
|
|
15
9
|
* - name: reference_id
|
|
16
10
|
* in: path
|
|
17
11
|
* required: true
|
|
18
|
-
* description:
|
|
12
|
+
* description: ID of the product (wishlist entry) to remove.
|
|
19
13
|
* schema:
|
|
20
14
|
* type: string
|
|
21
15
|
* responses:
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = void 0;
|
|
4
|
+
const workflows_1 = require("../../../../../workflows/wishlist/workflows");
|
|
5
|
+
const utils_1 = require("../../../../../modules/wishlist/utils");
|
|
6
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
7
|
+
/**
|
|
8
|
+
* @oas [delete] /store/wishlist/product/{reference_id}
|
|
9
|
+
* operationId: "StoreDeleteWishlist"
|
|
10
|
+
* summary: "Delete a wishlist entry"
|
|
11
|
+
* description: "Removes an item from the wishlist of the currently authenticated user. The wishlist is resolved from the logged-in customer."
|
|
12
|
+
* x-authenticated: true
|
|
13
|
+
* parameters:
|
|
14
|
+
* - name: reference_id
|
|
15
|
+
* in: path
|
|
16
|
+
* required: true
|
|
17
|
+
* description: ID of the product (wishlist entry) to remove.
|
|
18
|
+
* schema:
|
|
19
|
+
* type: string
|
|
20
|
+
* responses:
|
|
21
|
+
* "200":
|
|
22
|
+
* description: OK
|
|
23
|
+
* content:
|
|
24
|
+
* application/json:
|
|
25
|
+
* schema:
|
|
26
|
+
* type: object
|
|
27
|
+
* properties:
|
|
28
|
+
* id:
|
|
29
|
+
* type: string
|
|
30
|
+
* description: Id of the wishlsit nad reference id.
|
|
31
|
+
* reference_id:
|
|
32
|
+
* type: string
|
|
33
|
+
* object:
|
|
34
|
+
* type: string
|
|
35
|
+
* description: The type of resource
|
|
36
|
+
* deleted:
|
|
37
|
+
* type: boolean
|
|
38
|
+
* description: Indicates if the wishlist entry was deleted.
|
|
39
|
+
* tags:
|
|
40
|
+
* - Store Wishlist
|
|
41
|
+
* security:
|
|
42
|
+
* - api_token: []
|
|
43
|
+
* - cookie_auth: []
|
|
44
|
+
*/
|
|
45
|
+
const DELETE = async (req, res) => {
|
|
46
|
+
const wishlist = await (0, utils_1.getWishlistFromCustomerId)(req.scope, req.auth_context.actor_id);
|
|
47
|
+
if (!wishlist) {
|
|
48
|
+
throw new utils_2.MedusaError(utils_2.MedusaError.Types.NOT_FOUND, 'Wishlist not found for current customer');
|
|
49
|
+
}
|
|
50
|
+
await workflows_1.deleteWishlistEntryWorkflow.run({
|
|
51
|
+
container: req.scope,
|
|
52
|
+
input: {
|
|
53
|
+
id: wishlist.id,
|
|
54
|
+
reference_id: req.params.reference_id
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
res.json({
|
|
58
|
+
id: wishlist.id,
|
|
59
|
+
reference_id: req.params.reference_id,
|
|
60
|
+
object: 'wishlist',
|
|
61
|
+
deleted: true
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
exports.DELETE = DELETE;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0L3Byb2R1Y3QvW3JlZmVyZW5jZV9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkVBQXlGO0FBQ3pGLGlFQUFpRjtBQUNqRixxREFBdUQ7QUFFdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFFSSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQ3pCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsaUNBQXlCLEVBQzlDLEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQzFCLENBQUE7SUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksbUJBQVcsQ0FBQyxtQkFBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUseUNBQXlDLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQsTUFBTSx1Q0FBMkIsQ0FBQyxHQUFHLENBQUM7UUFDcEMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRTtZQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNmLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVk7U0FDdEM7S0FDRixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ2YsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTtRQUNyQyxNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQTNCWSxRQUFBLE1BQU0sVUEyQmxCIn0=
|