@alphabite/medusa-wishlist 0.1.0 β†’ 0.3.0

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.
@@ -4,6 +4,9 @@ const http_1 = require("@medusajs/framework/http");
4
4
  const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
5
  const validators_2 = require("./store/wishlists/validators");
6
6
  const validators_3 = require("./store/wishlists/[id]/add-item/validators");
7
+ const validators_4 = require("./store/wishlists/total-items-count/validators");
8
+ const validators_5 = require("./store/wishlists/[id]/validators");
9
+ const utils_1 = require("../utils/utils");
7
10
  exports.default = (0, http_1.defineMiddlewares)({
8
11
  routes: [
9
12
  //----List Wishlists-----//
@@ -12,18 +15,23 @@ exports.default = (0, http_1.defineMiddlewares)({
12
15
  methods: ["GET"],
13
16
  middlewares: [
14
17
  (0, http_1.authenticate)("customer", ["bearer"]),
15
- (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
16
- defaults: [
17
- // "items.*",
18
- // "items.product_variant.*",
19
- // "items.product_variant.prices.*",
20
- // "items.product_variant.product.thumbnail",
21
- // "items.product_variant.product.id",
22
- ],
18
+ (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)().extend(validators_2.ListWishlistsQuerySchema.shape), {
23
19
  isList: true,
24
20
  }),
25
21
  ],
26
22
  },
23
+ //----Total Items Count-----//
24
+ {
25
+ matcher: "/store/wishlists/total-items-count",
26
+ methods: ["GET"],
27
+ middlewares: [
28
+ (0, http_1.validateAndTransformQuery)(validators_4.TotalItemsCountInputSchema, {}),
29
+ (0, http_1.authenticate)("customer", ["bearer"], {
30
+ allowUnauthenticated: true,
31
+ allowUnregistered: true,
32
+ }),
33
+ ],
34
+ },
27
35
  //----Retrieve Wishlist-----//
28
36
  {
29
37
  matcher: "/store/wishlists/:id",
@@ -33,15 +41,7 @@ exports.default = (0, http_1.defineMiddlewares)({
33
41
  allowUnregistered: true,
34
42
  allowUnauthenticated: true,
35
43
  }),
36
- (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
37
- defaults: [
38
- "items.*",
39
- "items.product_variant.*",
40
- "items.product_variant.prices.*",
41
- "items.product_variant.product.thumbnail",
42
- "items.product_variant.product.id",
43
- ],
44
- }),
44
+ (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)().extend(validators_5.RetrieveWishlistQuerySchema.shape), {}),
45
45
  ],
46
46
  },
47
47
  //----Create wishlist-----//
@@ -87,19 +87,7 @@ exports.default = (0, http_1.defineMiddlewares)({
87
87
  allowUnauthenticated: true,
88
88
  }),
89
89
  (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
90
- defaults: [
91
- "id",
92
- "product_id",
93
- "wishlist_id",
94
- "created_at",
95
- "wishlist.customer_id",
96
- "updated_at",
97
- "deleted_at",
98
- "product_variant.*",
99
- "product_variant.prices.*",
100
- "product_variant.calculated_price",
101
- "product_variant.product.thumbnail",
102
- ],
90
+ defaults: utils_1.defaultItemsFields,
103
91
  isList: true,
104
92
  }),
105
93
  ],
@@ -115,19 +103,7 @@ exports.default = (0, http_1.defineMiddlewares)({
115
103
  }),
116
104
  (0, http_1.validateAndTransformBody)(validators_3.AddItemToWishlistInputSchema),
117
105
  (0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
118
- defaults: [
119
- "id",
120
- "product_variant_id",
121
- "wishlist_id",
122
- "created_at",
123
- "updated_at",
124
- "deleted_at",
125
- "product_variant.*",
126
- "product_variant.prices.*",
127
- "product_variant.calculated_price",
128
- "product_variant.product.thumbnail",
129
- "product_variant.product.id",
130
- ],
106
+ defaults: utils_1.defaultItemsFields,
131
107
  }),
132
108
  ],
133
109
  },
@@ -144,4 +120,4 @@ exports.default = (0, http_1.defineMiddlewares)({
144
120
  },
145
121
  ],
146
122
  });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBS2tDO0FBQ2xDLHNFQUF5RTtBQUN6RSw2REFHc0M7QUFDdEMsMkVBQTBGO0FBRTFGLGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ04sMkJBQTJCO1FBQzNCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEIsV0FBVyxFQUFFO2dCQUNYLElBQUEsbUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBQSxnQ0FBeUIsRUFBQyxJQUFBLDZCQUFnQixHQUFFLEVBQUU7b0JBQzVDLFFBQVEsRUFBRTtvQkFDUixhQUFhO29CQUNiLDZCQUE2QjtvQkFDN0Isb0NBQW9DO29CQUNwQyw2Q0FBNkM7b0JBQzdDLHNDQUFzQztxQkFDdkM7b0JBQ0QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQzthQUNIO1NBQ0Y7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxtQkFBWSxFQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNuQyxpQkFBaUIsRUFBRSxJQUFJO29CQUN2QixvQkFBb0IsRUFBRSxJQUFJO2lCQUMzQixDQUFDO2dCQUNGLElBQUEsZ0NBQXlCLEVBQUMsSUFBQSw2QkFBZ0IsR0FBRSxFQUFFO29CQUM1QyxRQUFRLEVBQUU7d0JBQ1IsU0FBUzt3QkFDVCx5QkFBeUI7d0JBQ3pCLGdDQUFnQzt3QkFDaEMseUNBQXlDO3dCQUN6QyxrQ0FBa0M7cUJBQ25DO2lCQUNGLENBQUM7YUFDSDtTQUNGO1FBQ0Qs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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBS2tDO0FBQ2xDLHNFQUF5RTtBQUN6RSw2REFJc0M7QUFDdEMsMkVBQTBGO0FBQzFGLCtFQUE0RjtBQUM1RixrRUFBZ0Y7QUFDaEYsMENBQW9EO0FBRXBELGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ04sMkJBQTJCO1FBQzNCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEIsV0FBVyxFQUFFO2dCQUNYLElBQUEsbUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBQSxnQ0FBeUIsRUFDdkIsSUFBQSw2QkFBZ0IsR0FBRSxDQUFDLE1BQU0sQ0FBQyxxQ0FBd0IsQ0FBQyxLQUFLLENBQUMsRUFDekQ7b0JBQ0UsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FDRjthQUNGO1NBQ0Y7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxPQUFPLEVBQUUsb0NBQW9DO1lBQzdDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxnQ0FBeUIsRUFBQyx1Q0FBMEIsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELElBQUEsbUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkMsb0JBQW9CLEVBQUUsSUFBSTtvQkFDMUIsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEIsQ0FBQzthQUNIO1NBQ0Y7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxtQkFBWSxFQUFDLFVBQVUsRUFB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
@@ -7,10 +7,13 @@ const POST = async (req, res) => {
7
7
  const { product_variant_id } = req.body;
8
8
  const { id } = req.params;
9
9
  const customer_id = req?.auth_context?.actor_id;
10
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
11
+ const options = wishlistService._options;
12
+ if (!options.allowGuestWishlist && !customer_id) {
13
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
14
+ }
10
15
  try {
11
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
12
16
  const query = req.scope.resolve("query");
13
- const options = wishlistService._options;
14
17
  const { data: wishlist } = await query.graph({
15
18
  entity: "wishlist",
16
19
  filters: { id },
@@ -24,7 +27,7 @@ const POST = async (req, res) => {
24
27
  wishlist[0]?.customer_id !== customer_id) {
25
28
  throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "You are not authorized to add items to this wishlist");
26
29
  }
27
- console.log("wishlist", wishlist);
30
+ // console.log("wishlist", wishlist);
28
31
  const created_item = await wishlistService.createWishlistItems({
29
32
  product_variant_id,
30
33
  wishlist_id: id,
@@ -35,7 +38,10 @@ const POST = async (req, res) => {
35
38
  id: created_item.id,
36
39
  },
37
40
  ...req.queryConfig,
38
- fields: [...(req.queryConfig.fields || []), ...(options?.fields || [])],
41
+ fields: [
42
+ ...(req.queryConfig.fields || []),
43
+ ...(options?.wishlistItemsFields || []),
44
+ ],
39
45
  });
40
46
  return res.status(201).json(enriched_wishlist_item[0]);
41
47
  }
@@ -45,4 +51,4 @@ const POST = async (req, res) => {
45
51
  }
46
52
  };
47
53
  exports.POST = POST;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2FkZC1pdGVtL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLDhEQUFrRTtBQUVsRSxxREFBd0Q7QUFFakQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFpQyxFQUNqQyxFQUFFO0lBQ0YsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN4QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztJQUVoRCxJQUFJLENBQUM7UUFDSCxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztRQUM1RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNmLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsc0RBQXNELENBQ3ZELENBQUM7UUFDSixDQUFDO1FBRUQsSUFDRSxXQUFXO1lBQ1gsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVc7WUFDeEIsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsS0FBSyxXQUFXLEVBQ3hDLENBQUM7WUFDRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixzREFBc0QsQ0FDdkQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVsQyxNQUFNLFlBQVksR0FBRyxNQUFNLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQztZQUM3RCxrQkFBa0I7WUFDbEIsV0FBVyxFQUFFLEVBQUU7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN6RCxNQUFNLEVBQUUsZUFBZTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFFO2FBQ3BCO1lBQ0QsR0FBRyxHQUFHLENBQUMsV0FBVztZQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVsRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztBQUNILENBQUMsQ0FBQztBQTVEVyxRQUFBLElBQUksUUE0RGYifQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2FkZC1pdGVtL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLDhEQUFrRTtBQUVsRSxxREFBd0Q7QUFFakQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFpQyxFQUNqQyxFQUFFO0lBQ0YsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN4QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztJQUVoRCxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpQ0FBaUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzQyxNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsV0FBVztZQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEtBQUssV0FBVyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsc0RBQXNELENBQ3ZELENBQUM7UUFDSixDQUFDO1FBRUQscUNBQXFDO1FBRXJDLE1BQU0sWUFBWSxHQUFHLE1BQU0sZUFBZSxDQUFDLG1CQUFtQixDQUFDO1lBQzdELGtCQUFrQjtZQUNsQixXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3pELE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7YUFDcEI7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQzthQUN4QztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUM7QUF2RVcsUUFBQSxJQUFJLFFBdUVmIn0=
@@ -5,10 +5,14 @@ const wishlist_1 = require("../../../../../../modules/wishlist");
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const DELETE = async (req, res) => {
7
7
  const { item_id, id: wishlist_id } = req.params;
8
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
9
- const query = req.scope.resolve("query");
10
8
  const customer_id = req?.auth_context?.actor_id;
9
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
10
+ const options = wishlistService._options;
11
+ if (!options.allowGuestWishlist && !customer_id) {
12
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
13
+ }
11
14
  try {
15
+ const query = req.scope.resolve("query");
12
16
  const { data: wishlist } = await query.graph({
13
17
  entity: "wishlist",
14
18
  filters: { id: wishlist_id },
@@ -32,4 +36,4 @@ const DELETE = async (req, res) => {
32
36
  }
33
37
  };
34
38
  exports.DELETE = DELETE;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL1tpdGVtX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSxpRUFBcUU7QUFDckUscURBQXdEO0FBT2pELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBNkMsRUFDN0MsRUFBRTtJQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDaEQsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFDNUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7SUFFaEQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDJEQUEyRCxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsV0FBVztZQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEtBQUssV0FBVyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsMkRBQTJELENBQzVELENBQUM7UUFDSixDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLE1BQU0sZUFBZSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUM7QUE1Q1csUUFBQSxNQUFNLFVBNENqQiJ9
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL1tpdGVtX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxpRUFBcUU7QUFDckUscURBQXdEO0FBT2pELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBNkMsRUFDN0MsRUFBRTtJQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7SUFFaEQsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFDNUQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztJQUV6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsaUNBQWlDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDJEQUEyRCxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsV0FBVztZQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEtBQUssV0FBVyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsMkRBQTJELENBQzVELENBQUM7UUFDSixDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLE1BQU0sZUFBZSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUM7QUF0RFcsUUFBQSxNQUFNLFVBc0RqQiJ9
@@ -7,17 +7,23 @@ const utils_2 = require("@medusajs/framework/utils");
7
7
  const GET = async (req, res) => {
8
8
  const { id } = req.params;
9
9
  const customer_id = req?.auth_context?.actor_id;
10
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
11
+ const options = wishlistService._options;
12
+ if (!options.allowGuestWishlist && !customer_id) {
13
+ throw new utils_2.MedusaError(utils_2.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
14
+ }
10
15
  try {
11
16
  const query = req.scope.resolve("query");
12
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
13
- const options = wishlistService._options;
14
17
  const { data: wishlist_items, metadata } = await query.graph({
15
18
  entity: "wishlist_item",
16
19
  filters: {
17
20
  wishlist_id: id,
18
21
  },
19
22
  ...req.queryConfig,
20
- fields: [...(req.queryConfig.fields || []), ...(options?.fields || [])],
23
+ fields: [
24
+ ...(req.queryConfig.fields || []),
25
+ ...(options?.wishlistItemsFields || []),
26
+ ],
21
27
  });
22
28
  if (customer_id && wishlist_items[0].wishlist.customer_id !== customer_id) {
23
29
  throw new utils_2.MedusaError(utils_2.MedusaErrorTypes.UNAUTHORIZED, "You are not authorized to access this wishlist items");
@@ -35,4 +41,4 @@ const GET = async (req, res) => {
35
41
  }
36
42
  };
37
43
  exports.GET = GET;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHNEQUEyRDtBQUUzRCw4REFBa0U7QUFDbEUscURBQTBFO0FBRW5FLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBa0QsRUFDbEQsRUFBRTtJQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBRWhELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUNuQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNELE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUUsRUFBRTthQUNoQjtZQUNELEdBQUcsR0FBRyxDQUFDLFdBQVc7WUFDbEIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3hFLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQ3RCLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUNsRDtZQUNELElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN6QixHQUFHLElBQUEscUJBQWEsRUFBQyxRQUFTLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBMUNXLFFBQUEsR0FBRyxPQTBDZCJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHNEQUEyRDtBQUUzRCw4REFBa0U7QUFDbEUscURBQTBFO0FBRW5FLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBa0QsRUFDbEQsRUFBRTtJQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBRWhELE1BQU0sZUFBZSxHQUNuQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFFekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGlDQUFpQyxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzRCxNQUFNLEVBQUUsZUFBZTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLEVBQUU7YUFDaEI7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQzthQUN4QztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQ3RCLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUNsRDtZQUNELElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN6QixHQUFHLElBQUEscUJBQWEsRUFBQyxRQUFTLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBckRXLFFBQUEsR0FBRyxPQXFEZCJ9
@@ -5,25 +5,26 @@ exports.PUT = PUT;
5
5
  exports.DELETE = DELETE;
6
6
  const utils_1 = require("@medusajs/framework/utils");
7
7
  const wishlist_1 = require("../../../../modules/wishlist");
8
+ const utils_2 = require("../../../../utils/utils");
8
9
  //-----Retrieves a specific wishlist by ID-----//
9
10
  async function GET(req, res) {
10
11
  const { id } = req.params;
11
12
  const customer_id = req?.auth_context?.actor_id;
13
+ const { items_fields } = req.validatedQuery;
14
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
15
+ const options = wishlistService._options;
16
+ if (!options.allowGuestWishlist && !customer_id) {
17
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
18
+ }
12
19
  try {
13
20
  const query = req.scope.resolve("query");
14
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
15
- const options = wishlistService._options;
16
21
  const { data } = await query.graph({
17
22
  entity: "wishlist",
18
23
  filters: {
19
24
  id,
20
25
  },
21
26
  ...req.queryConfig,
22
- fields: [
23
- "*",
24
- ...(req.queryConfig.fields || []),
25
- ...(options?.fields || []),
26
- ],
27
+ fields: ["*", ...(options?.wishlistFields || [])],
27
28
  });
28
29
  const wishlist = data?.[0];
29
30
  if (!wishlist) {
@@ -32,7 +33,22 @@ async function GET(req, res) {
32
33
  if (wishlist?.customer_id && wishlist?.customer_id !== customer_id) {
33
34
  throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.UNAUTHORIZED, "You are not authorized to access this wishlist");
34
35
  }
35
- return res.status(200).json(wishlist);
36
+ const { data: items, metadata: items_metadata } = await query.graph({
37
+ entity: "wishlist_item",
38
+ filters: { wishlist_id: wishlist.id },
39
+ fields: [
40
+ ...utils_2.defaultItemsFields,
41
+ ...(options?.wishlistItemsFields || []),
42
+ ...(items_fields || []),
43
+ ],
44
+ pagination: {
45
+ take: options?.includeWishlistItemsTake || 5,
46
+ skip: 0,
47
+ },
48
+ });
49
+ return res
50
+ .status(200)
51
+ .json({ ...wishlist, items_count: items_metadata?.count, items });
36
52
  }
37
53
  catch (error) {
38
54
  console.log("Error fetching wishlists:", error);
@@ -59,7 +75,7 @@ async function DELETE(req, res) {
59
75
  const { id } = req.params;
60
76
  try {
61
77
  const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
62
- await wishlistService.softDeleteWishlists({ id });
78
+ await wishlistService.deleteWishlists({ id });
63
79
  return res.status(200).json({
64
80
  id,
65
81
  });
@@ -69,4 +85,4 @@ async function DELETE(req, res) {
69
85
  return res.status(500).end();
70
86
  }
71
87
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0JBaURDO0FBRUQsa0JBc0JDO0FBT0Qsd0JBb0JDO0FBM0dELHFEQUEwRTtBQUkxRSwyREFBK0Q7QUFFL0QsaURBQWlEO0FBQzFDLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQStCLEVBQy9CLEdBQTZCO0lBRTdCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBRWhELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUNuQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO1FBRTVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqQyxNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUU7Z0JBQ1AsRUFBRTthQUNIO1lBQ0QsR0FBRyxHQUFHLENBQUMsV0FBVztZQUNsQixNQUFNLEVBQUU7Z0JBQ04sR0FBRztnQkFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7YUFDM0I7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzQixJ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
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esa0JBcUVDO0FBRUQsa0JBc0JDO0FBT0Qsd0JBb0JDO0FBaklELHFEQUEwRTtBQUkxRSwyREFBK0Q7QUFFL0QsbURBQTZEO0FBRTdELGlEQUFpRDtBQUMxQyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUEyRCxFQUMzRCxHQUE2QjtJQUU3QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztJQUNoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUU1QyxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpQ0FBaUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxFQUFFO2FBQ0g7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFX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
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RetrieveWishlistQuerySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.RetrieveWishlistQuerySchema = zod_1.z.object({
6
+ items_fields: zod_1.z.array(zod_1.z.string()).optional(),
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL1tpZF0vdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFFWCxRQUFBLDJCQUEyQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzdDLENBQUMsQ0FBQyJ9
@@ -4,38 +4,29 @@ exports.GET = GET;
4
4
  exports.POST = POST;
5
5
  const wishlist_1 = require("../../../modules/wishlist");
6
6
  const utils_1 = require("../../../utils/utils");
7
+ const utils_2 = require("@medusajs/framework/utils");
7
8
  async function GET(req, res) {
8
9
  const customer_id = req.auth_context.actor_id;
10
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
11
+ const options = wishlistService._options;
12
+ const { items_fields } = req.validatedQuery;
9
13
  try {
10
14
  const query = req.scope.resolve("query");
11
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
12
- const options = wishlistService._options;
13
15
  const { data, metadata } = await query.graph({
14
16
  entity: "wishlist",
15
17
  filters: { customer_id },
16
18
  ...req.queryConfig,
17
19
  fields: [
18
20
  "*",
19
- ...(options?.fields || []),
21
+ ...(options?.wishlistFields || []),
20
22
  ...(options.includeWishlistItems ? req.queryConfig.fields : []),
21
23
  ],
22
24
  });
23
25
  const enriched_wishlist = await Promise.all(data.map(async (wishlist) => {
24
- const { data: items } = await query.graph({
26
+ const { data: items, metadata } = await query.graph({
25
27
  entity: "wishlist_item",
26
28
  filters: { wishlist_id: wishlist.id },
27
- fields: [
28
- "id",
29
- "product_id",
30
- "wishlist_id",
31
- "created_at",
32
- "updated_at",
33
- "deleted_at",
34
- "product_variant.*",
35
- "product_variant.prices.*",
36
- "product_variant.calculated_price",
37
- "product_variant.product.thumbnail",
38
- ],
29
+ fields: [...utils_1.defaultItemsFields, ...(items_fields || [])],
39
30
  pagination: {
40
31
  take: options?.includeWishlistItemsTake || 5,
41
32
  skip: 0,
@@ -44,6 +35,7 @@ async function GET(req, res) {
44
35
  return {
45
36
  ...wishlist,
46
37
  items: items.length > 0 ? items : [],
38
+ items_count: metadata?.count,
47
39
  };
48
40
  }));
49
41
  return res.status(200).json({
@@ -62,16 +54,20 @@ async function GET(req, res) {
62
54
  async function POST(req, res) {
63
55
  const customer_id = req?.auth_context?.actor_id;
64
56
  const { ...input } = req.body;
57
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
58
+ const options = wishlistService._options;
59
+ if (!options.allowGuestWishlist && !customer_id) {
60
+ throw new utils_2.MedusaError(utils_2.MedusaError.Types.UNAUTHORIZED, "Guest wishlists are now allowed");
61
+ }
65
62
  try {
66
- const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
67
63
  const wishlist = await wishlistService.createWishlists({
68
64
  ...input,
69
65
  ...(customer_id && { customer_id }),
70
66
  });
71
- return res.status(201).json(wishlist);
67
+ return res.status(201).json({ ...wishlist, items_count: 0, items: [] });
72
68
  }
73
69
  catch (error) {
74
70
  return res.status(500).end();
75
71
  }
76
72
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtCQWdFQztBQUlELG9CQW9CQztBQTNGRCx3REFBNEQ7QUFDNUQsZ0RBQXFEO0FBRTlDLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQStCLEVBQy9CLEdBQThDO0lBRTlDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBRTlDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUNuQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFO1lBQ3hCLEdBQUcsR0FBRyxDQUFDLFdBQVc7WUFDbEIsTUFBTSxFQUFFO2dCQUNOLEdBQUc7Z0JBQ0gsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ2hFO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN4QyxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sRUFBRTtvQkFDTixJQUFJO29CQUNKLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixZQUFZO29CQUNaLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixtQkFBbUI7b0JBQ25CLDBCQUEwQjtvQkFDMUIsa0NBQWtDO29CQUNsQyxtQ0FBbUM7aUJBQ3BDO2dCQUNELFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixJQUFJLENBQUM7b0JBQzVDLElBQUksRUFBRSxDQUFDO2lCQUNSO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxHQUFHLFFBQVE7Z0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1lBQ3pCLEdBQUcsSUFBQSxxQkFBYSxFQUFDLFFBQVMsQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQsOEJBQThCO0FBRXZCLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQW9ELEVBQ3BELEdBQW1CO0lBRW5CLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQ2hELE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFFOUIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7UUFFNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ3JELEdBQUcsS0FBSztZQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztTQUNwQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDIn0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGtCQXVEQztBQUlELG9CQTRCQztBQTNGRCx3REFBNEQ7QUFDNUQsZ0RBQXlFO0FBQ3pFLHFEQUF3RDtBQUVqRCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUF3RCxFQUN4RCxHQUE4QztJQUU5QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO0lBRTVDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUN4QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHO2dCQUNILEdBQUcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNoRTtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQWUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUMxQixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ2xELE1BQU0sRUFBRSxlQUFlO2dCQUN2QixPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxFQUFFLENBQUMsR0FBRywwQkFBa0IsRUFBRSxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxDQUFDO29CQUM1QyxJQUFJLEVBQUUsQ0FBQztpQkFDUjthQUNGLENBQUMsQ0FBQztZQUVILE9BQU87Z0JBQ0wsR0FBRyxRQUFRO2dCQUNYLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEtBQUs7YUFDN0IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN6QixJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1lBQ3pCLEdBQUcsSUFBQSxxQkFBYSxFQUFDLFFBQVMsQ0FBQztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQsOEJBQThCO0FBRXZCLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQW9ELEVBQ3BELEdBQTZCO0lBRTdCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBQ2hELE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFFOUIsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFDNUQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztJQUV6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsaUNBQWlDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ3JELEdBQUcsS0FBSztZQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztTQUNwQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const wishlist_1 = require("../../../../modules/wishlist");
5
+ async function GET(req, res) {
6
+ const { wishlist_id } = req.validatedQuery;
7
+ const customer_id = req?.auth_context?.actor_id;
8
+ if (!wishlist_id && !customer_id) {
9
+ return res.status(200).json({
10
+ total_items_count: 0,
11
+ });
12
+ }
13
+ const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
14
+ try {
15
+ const count = await wishlistService.totalItemsCount({
16
+ customer_id,
17
+ wishlist_id,
18
+ });
19
+ return res.status(200).json({
20
+ total_items_count: count,
21
+ });
22
+ }
23
+ catch (error) {
24
+ console.log("Error fetching wishlists:", error);
25
+ return res.status(500).end();
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy90b3RhbC1pdGVtcy1jb3VudC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLGtCQStCQztBQXZDRCwyREFBK0Q7QUFReEQsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBMEQsRUFDMUQsR0FBMEM7SUFFMUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFFM0MsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7SUFFaEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFFNUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ2xELFdBQVc7WUFDWCxXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TotalItemsCountInputSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.TotalItemsCountInputSchema = zod_1.z.object({
6
+ wishlist_id: zod_1.z.string().optional(),
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL3RvdGFsLWl0ZW1zLWNvdW50L3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSwwQkFBMEIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQyJ9
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema = void 0;
3
+ exports.ListWishlistsQuerySchema = exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.CreateWishlistInputSchema = zod_1.z.object({
6
6
  name: zod_1.z.string().optional(),
@@ -10,4 +10,7 @@ exports.CreateWishlistInputSchema = zod_1.z.object({
10
10
  exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema.pick({
11
11
  name: true,
12
12
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDN0IsQ0FBQyxDQUFDO0FBSUgsZ0RBQWdEO0FBQ25DLFFBQUEseUJBQXlCLEdBQUcsaUNBQXlCLENBQUMsSUFBSSxDQUFDO0lBQ3RFLElBQUksRUFBRSxJQUFJO0NBQ1gsQ0FBQyxDQUFDIn0=
13
+ exports.ListWishlistsQuerySchema = zod_1.z.object({
14
+ items_fields: zod_1.z.array(zod_1.z.string()).optional(),
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDN0IsQ0FBQyxDQUFDO0FBSUgsZ0RBQWdEO0FBQ25DLFFBQUEseUJBQXlCLEdBQUcsaUNBQXlCLENBQUMsSUFBSSxDQUFDO0lBQ3RFLElBQUksRUFBRSxJQUFJO0NBQ1gsQ0FBQyxDQUFDO0FBSVUsUUFBQSx3QkFBd0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLFlBQVksRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUM3QyxDQUFDLENBQUMifQ==
@@ -11,21 +11,30 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
14
17
  Object.defineProperty(exports, "__esModule", { value: true });
15
18
  const utils_1 = require("@medusajs/framework/utils");
16
19
  const wishlist_1 = require("./models/wishlist");
17
20
  const wishlist_item_1 = require("./models/wishlist-item");
18
21
  const utils_2 = require("@medusajs/framework/utils");
22
+ const zod_1 = __importDefault(require("zod"));
23
+ const optionsSchema = zod_1.default.object({
24
+ wishlistFields: zod_1.default.array(zod_1.default.string()).optional(),
25
+ wishlistItemsFields: zod_1.default.array(zod_1.default.string()).optional(),
26
+ includeWishlistItems: zod_1.default.boolean().default(false),
27
+ includeWishlistItemsTake: zod_1.default.number().default(5),
28
+ allowGuestWishlist: zod_1.default.boolean().default(false),
29
+ });
19
30
  class WishlistModuleService extends (0, utils_1.MedusaService)({
20
31
  Wishlist: wishlist_1.Wishlist,
21
32
  WishlistItem: wishlist_item_1.WishlistItem,
22
33
  }) {
23
34
  static validateOptions(_options) {
24
- if (_options.fields) {
25
- if (!Array.isArray(_options.fields ||
26
- _options.fields.every((item) => typeof item === "string"))) {
27
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Missing required options for DigitalOcean Storage");
28
- }
35
+ const parsed = optionsSchema.safeParse(_options);
36
+ if (!parsed.success) {
37
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Invalid options provided for WishlistModuleService: ${parsed.error.message}`);
29
38
  }
30
39
  }
31
40
  constructor({}, options) {
@@ -39,33 +48,15 @@ class WishlistModuleService extends (0, utils_1.MedusaService)({
39
48
  .where("wi.product_id = ?", [productId])
40
49
  .execute())?.length || 0);
41
50
  }
42
- async getWishlistsOfProducts(productIds, context = {}) {
43
- return await context.manager
44
- ?.createQueryBuilder("wishlist_item", "wi")
45
- .where("wi.product_id IN (?)", [productIds])
46
- .execute();
47
- }
48
- async getWishlistItemId(customerId, productId, context = {}) {
49
- const wishlist = await context.manager
50
- ?.createQueryBuilder("wishlist", "w")
51
- .select(["w.id"])
52
- .where("w.customer_id = ?", [customerId])
53
- .execute();
54
- if (!wishlist?.[0]?.id) {
55
- throw new Error("Wishlist not found");
56
- }
57
- const wishlistId = wishlist[0].id;
58
- const wishlistItem = await context.manager
59
- ?.createQueryBuilder("wishlist_item", "wi")
60
- .select(["wi.id"])
61
- .where("wi.wishlist_id = ?", [wishlistId])
62
- .andWhere("wi.product_id = ?", [productId])
63
- .andWhere("wi.deleted_at IS NULL")
64
- .execute();
65
- if (!wishlistItem?.[0]?.id) {
66
- throw new Error("Wishlist item not found");
67
- }
68
- return wishlistItem[0].id;
51
+ async totalItemsCount({ customer_id, wishlist_id, }, context = {}) {
52
+ const wishlist_items_count = await context.manager?.count(wishlist_item_1.WishlistItem, {
53
+ wishlist: {
54
+ ...(customer_id && { customer_id }),
55
+ ...(wishlist_id &&
56
+ !customer_id && { id: wishlist_id, customer_id: null }),
57
+ },
58
+ });
59
+ return Number(wishlist_items_count || 0);
69
60
  }
70
61
  }
71
62
  exports.default = WishlistModuleService;
@@ -80,14 +71,7 @@ __decorate([
80
71
  (0, utils_2.InjectManager)(),
81
72
  __param(1, (0, utils_1.MedusaContext)()),
82
73
  __metadata("design:type", Function),
83
- __metadata("design:paramtypes", [Array, Object]),
84
- __metadata("design:returntype", Promise)
85
- ], WishlistModuleService.prototype, "getWishlistsOfProducts", null);
86
- __decorate([
87
- (0, utils_2.InjectManager)(),
88
- __param(2, (0, utils_1.MedusaContext)()),
89
- __metadata("design:type", Function),
90
- __metadata("design:paramtypes", [String, String, Object]),
74
+ __metadata("design:paramtypes", [Object, Object]),
91
75
  __metadata("design:returntype", Promise)
92
- ], WishlistModuleService.prototype, "getWishlistItemId", null);
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFJbUM7QUFDbkMsZ0RBQTZDO0FBQzdDLDBEQUFzRDtBQUN0RCxxREFBMEQ7QUFVMUQsTUFBcUIscUJBQXNCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQy9ELFFBQVEsRUFBUixtQkFBUTtJQUNSLFlBQVksRUFBWiw0QkFBWTtDQUNiLENBQUM7SUFHQSxNQUFNLENBQUMsZUFBZSxDQUFDLFFBQTBCO1FBQy9DLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQ0UsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNaLFFBQVEsQ0FBQyxNQUFNO2dCQUNiLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FDNUQsRUFDRCxDQUFDO2dCQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLG1EQUFtRCxDQUNwRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxFQUFFLEVBQUUsT0FBZ0I7UUFDOUIsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQywwQkFBMEIsQ0FDOUIsU0FBaUIsRUFDQSxVQUFrQyxFQUFFO1FBRXJELE9BQU8sQ0FDTCxDQUNFLE1BQU0sT0FBTyxDQUFDLE9BQU87WUFDbkIsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO2FBQzFDLE1BQU0sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxDQUFDO2FBQ2hDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZDLE9BQU8sRUFBRSxDQUNiLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLHNCQUFzQixDQUMxQixVQUFvQixFQUNILFVBQWtDLEVBQUU7UUFFckQsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPO1lBQzFCLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzthQUMxQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMzQyxPQUFPLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFHSyxBQUFOLEtBQUssQ0FBQyxpQkFBaUIsQ0FDckIsVUFBa0IsRUFDbEIsU0FBaUIsRUFDQSxVQUFrQyxFQUFFO1FBRXJELE1BQU0sUUFBUSxHQUFRLE1BQU0sT0FBTyxDQUFDLE9BQU87WUFDekMsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2hCLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3hDLE9BQU8sRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFlBQVksR0FBUSxNQUFNLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQzthQUMxQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqQixLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQyxRQUFRLENBQUMsdUJBQXVCLENBQUM7YUFDakMsT0FBTyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBdEZELHdDQXNGQztBQTFETztJQURMLElBQUEscUJBQWEsR0FBRTtJQUdiLFdBQUEsSUFBQSxxQkFBYSxHQUFFLENBQUE7Ozs7dUVBV2pCO0FBR0s7SUFETCxJQUFBLHFCQUFhLEdBQUU7SUFHYixXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7O21FQU1qQjtBQUdLO0lBREwsSUFBQSxxQkFBYSxHQUFFO0lBSWIsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozs4REEyQmpCIn0=
76
+ ], WishlistModuleService.prototype, "totalItemsCount", null);
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFJbUM7QUFDbkMsZ0RBQTZDO0FBQzdDLDBEQUFzRDtBQUN0RCxxREFBMEQ7QUFHMUQsOENBQW9CO0FBRXBCLE1BQU0sYUFBYSxHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0IsY0FBYyxFQUFFLGFBQUMsQ0FBQyxLQUFLLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlDLG1CQUFtQixFQUFFLGFBQUMsQ0FBQyxLQUFLLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25ELG9CQUFvQixFQUFFLGFBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2hELHdCQUF3QixFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLGtCQUFrQixFQUFFLGFBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0NBQy9DLENBQUMsQ0FBQztBQUlILE1BQXFCLHFCQUFzQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUMvRCxRQUFRLEVBQVIsbUJBQVE7SUFDUixZQUFZLEVBQVosNEJBQVk7Q0FDYixDQUFDO0lBR0EsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsUUFBd0M7UUFFeEMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHVEQUF1RCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUM5RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLEVBQUUsRUFBRSxPQUF1QztRQUNyRCxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLDBCQUEwQixDQUM5QixTQUFpQixFQUNBLFVBQWtDLEVBQUU7UUFFckQsT0FBTyxDQUNMLENBQ0UsTUFBTSxPQUFPLENBQUMsT0FBTztZQUNuQixFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7YUFDMUMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUM7YUFDaEMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdkMsT0FBTyxFQUFFLENBQ2IsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsZUFBZSxDQUNuQixFQUNFLFdBQVcsRUFDWCxXQUFXLEdBQ29DLEVBRWhDLFVBQWtDLEVBQUU7UUFFckQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLDRCQUFZLEVBQUU7WUFDdEUsUUFBUSxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsR0FBRyxDQUFDLFdBQVc7b0JBQ2IsQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUMxRDtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQTFERCx3Q0EwREM7QUFsQ087SUFETCxJQUFBLHFCQUFhLEdBQUU7SUFHYixXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7O3VFQVdqQjtBQUdLO0lBREwsSUFBQSxxQkFBYSxHQUFFO0lBT2IsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozs0REFXakIifQ==
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPagination = void 0;
4
- const getPagination = ({ count, take, skip }) => {
3
+ exports.defaultItemsFields = exports.getPagination = void 0;
4
+ const getPagination = ({ count, take, skip, }) => {
5
5
  const totalPages = Math.max(Math.ceil(count / take), 1);
6
6
  const currentPage = skip / take + 1;
7
7
  const nextPage = Math.min(currentPage + 1, totalPages);
@@ -9,4 +9,16 @@ const getPagination = ({ count, take, skip }) => {
9
9
  return { count, nextPage, currentPage, prevPage, totalPages };
10
10
  };
11
11
  exports.getPagination = getPagination;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUF1QyxFQUFFLEVBQUU7SUFDMUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDaEUsQ0FBQyxDQUFDO0FBUFcsUUFBQSxhQUFhLGlCQU94QiJ9
12
+ exports.defaultItemsFields = [
13
+ "id",
14
+ "product_id",
15
+ "wishlist_id",
16
+ "created_at",
17
+ "updated_at",
18
+ "deleted_at",
19
+ "product_variant.*",
20
+ "product_variant.prices.*",
21
+ "product_variant.calculated_price",
22
+ "product_variant.product.thumbnail",
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUM1QixLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksR0FDZ0MsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7SUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQVhXLFFBQUEsYUFBYSxpQkFXeEI7QUFFVyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLElBQUk7SUFDSixZQUFZO0lBQ1osYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLG1CQUFtQjtJQUNuQiwwQkFBMEI7SUFDMUIsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFDIn0=
package/README.md CHANGED
@@ -1,64 +1,169 @@
1
- <p align="center">
2
- <a href="https://www.medusajs.com">
3
- <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
5
- <source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
6
- <img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
7
- </picture>
8
- </a>
9
- </p>
10
- <h1 align="center">
11
- Medusa Plugin Starter
12
- </h1>
1
+ # πŸ§žβ€β™‚οΈ Wishlist Plugin for Medusa
13
2
 
14
- <h4 align="center">
15
- <a href="https://docs.medusajs.com">Documentation</a> |
16
- <a href="https://www.medusajs.com">Website</a>
17
- </h4>
3
+ The **Alphabite Wishlist Plugin** is the most feature-complete wishlist system for [MedusaJS](https://medusajs.com). It supports both authenticated and guest users, multiple wishlists per user, and a full-featured SDK client for frontend integration.
18
4
 
19
- <p align="center">
20
- Building blocks for digital commerce
21
- </p>
22
- <p align="center">
23
- <a href="https://github.com/medusajs/medusa/blob/master/CONTRIBUTING.md">
24
- <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat" alt="PRs welcome!" />
25
- </a>
26
- <a href="https://www.producthunt.com/posts/medusa"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Day-%23DA552E" alt="Product Hunt"></a>
27
- <a href="https://discord.gg/xpCwq3Kfn8">
28
- <img src="https://img.shields.io/badge/chat-on%20discord-7289DA.svg" alt="Discord Chat" />
29
- </a>
30
- <a href="https://twitter.com/intent/follow?screen_name=medusajs">
31
- <img src="https://img.shields.io/twitter/follow/medusajs.svg?label=Follow%20@medusajs" alt="Follow @medusajs" />
32
- </a>
33
- </p>
5
+ This plugin ships with:
6
+ - πŸ”Œ A fully typed JS SDK plugin
7
+ - πŸ“­ A Postman collection
8
+ - βœ… Support for guest & authenticated customers
9
+
10
+ ---
11
+
12
+ ## πŸ“š Table of Contents
13
+
14
+ - [✨ Features](#-features)
15
+ - [πŸ“¦ Installation](#-installation)
16
+ - [πŸ”§ Plugin Options](#-plugin-options)
17
+ - [πŸ“¦ API Endpoints](#-api-endpoints)
18
+ - [πŸ§‘β€πŸ’» SDK Usage](#-sdk-usage)
19
+ - [πŸ§ͺ Guest Wishlist Flow](#-guest-wishlist-flow)
20
+ - [🧩 Requirements](#-requirements)
21
+ - [πŸ“­ Postman Collection](#-postman-collection)
22
+ - [🀝 Contributing](#-contributing)
23
+
24
+ ---
25
+
26
+ ## ✨ Features
34
27
 
35
- ## Compatibility
28
+ - βœ… Multiple wishlists per customer
29
+ - βœ… Add/remove items to/from any wishlist
30
+ - βœ… Guest wishlist supported + transfer when registered
31
+ - βœ… Fully typed Medusa JS SDK integration with our SDK client
32
+ - βœ… Pagination and filtering built-in
36
33
 
37
- This starter is compatible with versions >= 2.4.0 of `@medusajs/medusa`.
34
+ ---
38
35
 
39
- ## Getting Started
36
+ ## πŸ“¦ Installation
40
37
 
41
- Visit the [Quickstart Guide](https://docs.medusajs.com/learn/installation) to set up a server.
38
+ Install the plugin via npm:
42
39
 
43
- Visit the [Plugins documentation](https://docs.medusajs.com/learn/fundamentals/plugins) to learn more about plugins and how to create them.
40
+ ```bash
41
+ npm install @alphabite/medusa-wishlist
42
+ ```
44
43
 
45
- Visit the [Docs](https://docs.medusajs.com/learn/installation#get-started) to learn more about our system requirements.
44
+ In your `medusa-config.js`, register the plugin:
46
45
 
47
- ## What is Medusa
46
+ ```js
47
+ const plugins = [
48
+ {
49
+ resolve: '@alphabite/medusa-wishlist',
50
+ options: {
51
+ // all are optional, read bellow about default values
52
+ wishlistFields: [],
53
+ wishlistItemsFields: [],
54
+ includeWishlistItems: true,
55
+ includeWishlistItemsTake: 5,
56
+ allowGuestWishlist: true,
57
+ },
58
+ },
59
+ ]
60
+ ```
48
61
 
49
- Medusa is a set of commerce modules and tools that allow you to build rich, reliable, and performant commerce applications without reinventing core commerce logic. The modules can be customized and used to build advanced ecommerce stores, marketplaces, or any product that needs foundational commerce primitives. All modules are open-source and freely available on npm.
62
+ ---
50
63
 
51
- Learn more about [Medusa’s architecture](https://docs.medusajs.com/learn/introduction/architecture) and [commerce modules](https://docs.medusajs.com/learn/fundamentals/modules/commerce-modules) in the Docs.
64
+ ## πŸ”§ Plugin Options
52
65
 
53
- ## Community & Contributions
66
+ | Option | Type | Default | Description |
67
+ |---------------------------|------------|---------|--------------------------------------------------------------------------|
68
+ | `wishlistFields` | `string[]` | `["items.*", "items.product_variant.*", "items.product_variant.prices.*", "items.product_variant.product.thumbnail", "items.product_variant.product.id"]` | Selectively include Medusa product or product variant fields on wishlist list/retrieve endpoints that have wishlist items included |
69
+ | `wishlistItemsFields` | `string[]` | `["id", "product_id", "wishlist_id", "created_at", "wishlist.customer_id", "updated_at", "deleted_at", "product_variant.*", "product_variant.prices.*", "product_variant.calculated_price", "product_variant.product.thumbnail",]` | Selectively include Medusa product or product variant fields on wishlist items list/retrieve endpoints |
70
+ | `includeWishlistItems` | `boolean` | `false` | Automatically populate wishlist items in `GET /store/wishlists` |
71
+ | `includeWishlistItemsTake` | `number` | `5` | Limit number of items if `includeWishlistItems` is true |
72
+ | `allowGuestWishlist` | `boolean` | `false` | Enables wishlist creation & usage without authentication (cookie-based) |
54
73
 
55
- The community and core team are available in [GitHub Discussions](https://github.com/medusajs/medusa/discussions), where you can ask for support, discuss roadmap, and share ideas.
74
+ ---
56
75
 
57
- Join our [Discord server](https://discord.com/invite/medusajs) to meet other community members.
76
+ ## πŸ“¦ API Endpoints
58
77
 
59
- ## Other channels
78
+ All endpoints are available under `/store/wishlists`.
60
79
 
61
- - [GitHub Issues](https://github.com/medusajs/medusa/issues)
62
- - [Twitter](https://twitter.com/medusajs)
63
- - [LinkedIn](https://www.linkedin.com/company/medusajs)
64
- - [Medusa Blog](https://medusajs.com/blog/)
80
+ | Method | Endpoint | Auth | Description |
81
+ |--------|--------------------------------------------|----------------|-----------------------------------------|
82
+ | GET | `/store/wishlists` | βœ… | List wishlists for the current customer |
83
+ | POST | `/store/wishlists` | βž– (optional) | Create a new wishlist |
84
+ | GET | `/store/wishlists/:id` | βž– (optional) | Retrieve a wishlist by ID |
85
+ | PUT | `/store/wishlists/:id` | βœ… | Update wishlist metadata |
86
+ | DELETE | `/store/wishlists/:id` | βœ… | Delete a wishlist |
87
+ | POST | `/store/wishlists/:id/transfer` | βœ… | Transfer guest wishlist to logged-in user |
88
+ | GET | `/store/wishlists/:id/items` | βž– (optional) | Get items in a wishlist |
89
+ | POST | `/store/wishlists/:id/add-item` | βž– (optional) | Add an item to the wishlist |
90
+ | DELETE | `/store/wishlists/:id/items/:item_id` | βž– (optional) | Remove an item from the wishlist |
91
+
92
+ ---
93
+
94
+ ## πŸ§‘β€πŸ’» SDK Usage
95
+
96
+ ❗❗❗[Read more about our Medusa compatible SDK here](https://github.com/alphabite-dev/medusa-client/tree/main)
97
+
98
+ ```ts
99
+ import { AlphabiteMedusaClient, wishlistPlugin } from '@alphabite/sdk'
100
+
101
+ const sdk = new AlphabiteMedusaClient({
102
+ {
103
+ baseUrl,
104
+ debug: process.env.NODE_ENV === "development",
105
+ publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
106
+ },
107
+ [wishlistPlugin],
108
+ {
109
+ getAuthHeader: () => { return { authorization: `Bearer ${customerJwt}` } },
110
+ }
111
+ })
112
+
113
+ // Create wishlist
114
+ await sdk.alphabite.wishlist.create({ name: 'My Sneakers' })
115
+
116
+ // Add item
117
+ await sdk.alphabite.wishlist.addItem({
118
+ id: 'wishlist_id',
119
+ product_variant_id: 'variant_id',
120
+ })
121
+
122
+ // List items
123
+ const { data } = await sdk.alphabite.wishlist.listItems({ id: 'wishlist_id' })
124
+ ```
125
+
126
+
127
+ ---
128
+
129
+ ## πŸ§ͺ Guest Wishlist Flow
130
+
131
+ Guest wishlists work like guest carts:
132
+
133
+ 1. Create a wishlist (no auth required)
134
+ 2. Save the `id` in a cookie
135
+ 3. Use that ID for listing/adding/removing items
136
+ 4. When the user signs up or logs in, call the `transfer` endpoint to associate it:
137
+
138
+ ```ts
139
+ await medusa.alphabite.wishlist.transfer({ id: wishlistId })
140
+ ```
141
+
142
+ After that, the cookie is no longer needed.
143
+
144
+ ---
145
+
146
+ ## 🧩 Requirements
147
+
148
+ - Medusa v2.5.0+
149
+ - Works with both `@medusajs/types` and `@medusajs/framework`
150
+
151
+ ---
152
+
153
+ ## πŸ“­ Postman Collection
154
+
155
+ You’ll find the ready-to-import Postman collection at:
156
+
157
+ ```
158
+ docs/postman/WishlistPlugin.postman_collection.json
159
+ ```
160
+
161
+ Use it to explore and test all endpoints interactively.
162
+
163
+ ---
164
+
165
+ ## 🀝 Contributing
166
+
167
+ We welcome issues, feedback, and PRs. Fork it, build it, improve it.
168
+
169
+ Let’s make commerce more personalized πŸ›οΈ
package/package.json CHANGED
@@ -1,12 +1,20 @@
1
1
  {
2
2
  "name": "@alphabite/medusa-wishlist",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Alphabite's Medusa Wishlist Plugin",
5
5
  "author": "Alphabite (https://alphabite.io)",
6
6
  "license": "MIT",
7
7
  "files": [
8
8
  ".medusa/server"
9
9
  ],
10
+ "bugs": {
11
+ "url": "https://github.com/alphabite-dev/medusa-client/issues"
12
+ },
13
+ "homepage": "https://github.com/alphabite-dev/medusa-client#readme",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+ssh://git@github.com/alphabite-dev/medusa-wishlist.git"
17
+ },
10
18
  "exports": {
11
19
  "./package.json": "./package.json",
12
20
  "./workflows": "./.medusa/server/src/workflows/index.js",