@lodashventure/medusa-membership 0.1.0 → 0.1.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.
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const retrieve_customer_membership_tier_1 = require("../../../../../workflows/membership/retrieve-customer-membership-tier");
5
+ const create_membership_1 = require("../../../../../workflows/membership/create-membership");
6
+ const GET = async (req, res) => {
7
+ try {
8
+ const customerId = req.auth_context.actor_id;
9
+ const createIfNotExists = req.query.create === "true"; // Optional query param to create membership
10
+ // Use the workflow to retrieve the customer's membership and tier
11
+ // Pass req.scope for proper context resolution
12
+ const { result } = await (0, retrieve_customer_membership_tier_1.retrieveCustomerMembershipTierWorkflow)(req.scope).run({
13
+ input: {
14
+ customer_id: customerId,
15
+ },
16
+ });
17
+ const typedResult = result;
18
+ if (!typedResult.membership) {
19
+ // If create flag is set, create a new membership with 0 points
20
+ if (createIfNotExists) {
21
+ await (0, create_membership_1.createMembershipWorkflow)(req.scope).run({
22
+ input: {
23
+ customer_id: customerId,
24
+ points: 0,
25
+ },
26
+ });
27
+ // Retrieve the newly created membership with tier
28
+ const { result: newResult } = await (0, retrieve_customer_membership_tier_1.retrieveCustomerMembershipTierWorkflow)(req.scope).run({
29
+ input: {
30
+ customer_id: customerId,
31
+ },
32
+ });
33
+ const typedNewResult = newResult;
34
+ return res.json({
35
+ membership: typedNewResult.membership,
36
+ member_tier: typedNewResult.member_tier,
37
+ created: true, // Indicate that a new membership was created
38
+ });
39
+ }
40
+ // Return a more informative response for customers without memberships
41
+ return res.json({
42
+ membership: null,
43
+ member_tier: null,
44
+ message: "No membership exists for this customer yet. Memberships are created after your first purchase.",
45
+ });
46
+ }
47
+ return res.json({
48
+ membership: typedResult.membership,
49
+ member_tier: typedResult.member_tier,
50
+ });
51
+ }
52
+ catch (error) {
53
+ console.error("Error fetching member tier:", error);
54
+ return res.status(500).json({
55
+ message: "Failed to fetch member tier",
56
+ error: error.message,
57
+ });
58
+ }
59
+ };
60
+ exports.GET = GET;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9tZW1iZXItdGllci9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw2SEFBK0g7QUFDL0gsNkZBQWlHO0FBd0IxRixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztRQUVuRyxrRUFBa0U7UUFDbEUsK0NBQStDO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMEVBQXNDLEVBQzdELEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxNQUE4QyxDQUFDO1FBRW5FLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsK0RBQStEO1lBQy9ELElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFBLDRDQUF3QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzVDLEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsVUFBVTt3QkFDdkIsTUFBTSxFQUFFLENBQUM7cUJBQ1Y7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVILGtEQUFrRDtnQkFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FDekIsTUFBTSxJQUFBLDBFQUFzQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzFELEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsVUFBVTtxQkFDeEI7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVMLE1BQU0sY0FBYyxHQUNsQixTQUFpRCxDQUFDO2dCQUVwRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVO29CQUNyQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFdBQVc7b0JBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsNkNBQTZDO2lCQUM3RCxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsdUVBQXVFO1lBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLE9BQU8sRUFDTCxnR0FBZ0c7YUFDbkcsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNkLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtZQUNsQyxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUFFLDZCQUE2QjtZQUN0QyxLQUFLLEVBQUcsS0FBZSxDQUFDLE9BQU87U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQXBFVyxRQUFBLEdBQUcsT0FvRWQifQ==
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DELETE = void 0;
4
4
  const delete_wishlist_items_1 = require("../../../../../../workflows/wishlist/delete-wishlist-items");
5
5
  const DELETE = async (req, res) => {
6
- const wishlistId = req.auth_context.actor_id;
6
+ const customer_id = req.auth_context.actor_id;
7
7
  const variantId = req.params.variant_id;
8
8
  const wishlistItemRes = await delete_wishlist_items_1.deleteWishlistItemWorkflow.run({
9
9
  input: {
10
- customer_id: wishlistId,
10
+ customer_id: customer_id,
11
11
  product_variant_id: variantId,
12
12
  },
13
13
  });
14
14
  res.json(wishlistItemRes.result.deleted);
15
15
  };
16
16
  exports.DELETE = DELETE;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdC9bdmFyaWFudF9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsc0dBQXdHO0FBRWpHLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXhDLE1BQU0sZUFBZSxHQUFHLE1BQU0sa0RBQTBCLENBQUMsR0FBRyxDQUFDO1FBQzNELEtBQUssRUFBRTtZQUNMLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLGtCQUFrQixFQUFFLFNBQVM7U0FDOUI7S0FDRixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBZlcsUUFBQSxNQUFNLFVBZWpCIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdC9bdmFyaWFudF9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsc0dBQXdHO0FBRWpHLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBRXhDLE1BQU0sZUFBZSxHQUFHLE1BQU0sa0RBQTBCLENBQUMsR0FBRyxDQUFDO1FBQzNELEtBQUssRUFBRTtZQUNMLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLGtCQUFrQixFQUFFLFNBQVM7U0FDOUI7S0FDRixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBZlcsUUFBQSxNQUFNLFVBZWpCIn0=
@@ -8,15 +8,15 @@ const create_wishlist_items_1 = require("../../../../../workflows/wishlist/creat
8
8
  const utils_1 = require("@medusajs/framework/utils");
9
9
  const GET = async (req, res) => {
10
10
  /** using customer_id for wishlist_id */
11
- const wishlistId = req.auth_context.actor_id;
11
+ const customerId = req.auth_context.actor_id;
12
12
  const wishlistModuleService = framework_1.container.resolve(wishlist_1.WISHLIST_MODULE);
13
13
  const [wishlist] = await wishlistModuleService.listWishlists({
14
- customer_id: wishlistId,
14
+ customer_id: customerId,
15
15
  });
16
16
  if (!wishlist) {
17
17
  await create_wishlist_1.createWishlistWorkflow.run({
18
18
  input: {
19
- customer_id: wishlistId,
19
+ customer_id: customerId,
20
20
  },
21
21
  });
22
22
  return res.json([]);
@@ -24,9 +24,19 @@ const GET = async (req, res) => {
24
24
  const query = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
25
25
  const wishlistItems = await query.graph({
26
26
  entity: "wishlist_item",
27
- fields: ["*", "product_variant.product.id"],
27
+ fields: [
28
+ "*",
29
+ "product_variant.*",
30
+ "product_variant.product.*",
31
+ "product_variant.product.categories.*",
32
+ "product_variant.product.collection.*",
33
+ "product_variant.product.tags.*",
34
+ "product_variant.product.images.*",
35
+ "product_variant.product.variants.*",
36
+ "product_variant.prices.*",
37
+ ],
28
38
  filters: {
29
- wishlist_id: wishlistId,
39
+ customer_id: customerId,
30
40
  },
31
41
  pagination: {
32
42
  order: {
@@ -34,28 +44,18 @@ const GET = async (req, res) => {
34
44
  },
35
45
  },
36
46
  });
37
- // const wishlistItems = await wishlistModuleService.listWishlistItems(
38
- // {
39
- // wishlist_id: wishlistId,
40
- // },
41
- // {
42
- // order: {
43
- // created_at: "DESC",
44
- // },
45
- // }
46
- // );
47
47
  res.json(wishlistItems);
48
48
  };
49
49
  exports.GET = GET;
50
50
  const POST = async (req, res) => {
51
- const wishlistId = req.auth_context.actor_id;
51
+ const customerId = req.auth_context.actor_id;
52
52
  const wishlistItemRes = await create_wishlist_items_1.createWishlistItemWorkflow.run({
53
53
  input: {
54
- customer_id: wishlistId,
54
+ customer_id: customerId,
55
55
  variant_id: req.body.product_variant_id,
56
56
  },
57
57
  });
58
58
  res.json(wishlistItemRes.result.wishlistItem);
59
59
  };
60
60
  exports.POST = POST;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJNkI7QUFFN0IsOERBQWtFO0FBQ2xFLHVGQUEyRjtBQUMzRixtR0FBcUc7QUFDckcscURBQXNFO0FBRS9ELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLHdDQUF3QztJQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUU3QyxNQUFNLHFCQUFxQixHQUN6QixxQkFBUyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO0lBRTVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztRQUMzRCxXQUFXLEVBQUUsVUFBVTtLQUN4QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLHdDQUFzQixDQUFDLEdBQUcsQ0FBQztZQUMvQixLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7UUFDM0MsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLFVBQVU7U0FDeEI7UUFDRCxVQUFVLEVBQUU7WUFDVixLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLE1BQU07YUFDbkI7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILHVFQUF1RTtJQUN2RSxNQUFNO0lBQ04sK0JBQStCO0lBQy9CLE9BQU87SUFDUCxNQUFNO0lBQ04sZUFBZTtJQUNmLDRCQUE0QjtJQUM1QixTQUFTO0lBQ1QsTUFBTTtJQUNOLEtBQUs7SUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQWhEVyxRQUFBLEdBQUcsT0FnRGQ7QUFFSyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQStELEVBQy9ELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUU3QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGtEQUEwQixDQUFDLEdBQUcsQ0FBQztRQUMzRCxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsVUFBVTtZQUN2QixVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0I7U0FDeEM7S0FDRixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBZFcsUUFBQSxJQUFJLFFBY2YifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS93aXNobGlzdC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJNkI7QUFFN0IsOERBQWtFO0FBQ2xFLHVGQUEyRjtBQUMzRixtR0FBcUc7QUFDckcscURBQXNFO0FBRS9ELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLHdDQUF3QztJQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUU3QyxNQUFNLHFCQUFxQixHQUN6QixxQkFBUyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO0lBRTVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztRQUMzRCxXQUFXLEVBQUUsVUFBVTtLQUN4QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLHdDQUFzQixDQUFDLEdBQUcsQ0FBQztZQUMvQixLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLEVBQUUsZUFBZTtRQUN2QixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQixzQ0FBc0M7WUFDdEMsc0NBQXNDO1lBQ3RDLGdDQUFnQztZQUNoQyxrQ0FBa0M7WUFDbEMsb0NBQW9DO1lBQ3BDLDBCQUEwQjtTQUMzQjtRQUNELE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSxVQUFVO1NBQ3hCO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFO2dCQUNMLFVBQVUsRUFBRSxNQUFNO2FBQ25CO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQWhEVyxRQUFBLEdBQUcsT0FnRGQ7QUFFSyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQStELEVBQy9ELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUU3QyxNQUFNLGVBQWUsR0FBRyxNQUFNLGtEQUEwQixDQUFDLEdBQUcsQ0FBQztRQUMzRCxLQUFLLEVBQUU7WUFDTCxXQUFXLEVBQUUsVUFBVTtZQUN2QixVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0I7U0FDeEM7S0FDRixDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBZFcsUUFBQSxJQUFJLFFBY2YifQ==
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = exports.POST = void 0;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const promotion_cache_1 = require("../../../modules/promotion-cache");
7
+ const usable_promo_1 = require("../../../modules/usable-promo");
8
+ /**
9
+ * POST handler for collecting/claiming a promotion code
10
+ * Customers can collect promotions that are enabled for collection
11
+ */
12
+ const POST = async (req, res) => {
13
+ const { promotion_id } = req.body;
14
+ if (!promotion_id) {
15
+ return res.status(400).json({
16
+ message: "promotion_id is required",
17
+ });
18
+ }
19
+ const customerId = req.auth_context.actor_id;
20
+ if (!customerId) {
21
+ return res.status(401).json({
22
+ message: "Customer must be authenticated",
23
+ });
24
+ }
25
+ try {
26
+ // Check if promotion exists and is enabled for collection
27
+ const usablePromoService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
28
+ const [usablePromotion] = await usablePromoService.listUsablePromotions({
29
+ promotion_id: promotion_id,
30
+ });
31
+ if (!usablePromotion) {
32
+ return res.status(404).json({
33
+ message: "Promotion not found or not available for collection",
34
+ });
35
+ }
36
+ if (!usablePromotion.enabled) {
37
+ return res.status(400).json({
38
+ message: "This promotion is not enabled for collection",
39
+ });
40
+ }
41
+ // Verify promotion exists in the system
42
+ const promotionService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
43
+ const promotion = await promotionService.retrievePromotion(promotion_id, {
44
+ relations: ["campaign"],
45
+ });
46
+ if (!promotion) {
47
+ return res.status(404).json({
48
+ message: "Promotion not found",
49
+ });
50
+ }
51
+ // Check if customer already has this promotion
52
+ const promoCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
53
+ const cacheKey = `user:${customerId}:promotion:${promotion_id}`;
54
+ const alreadyCollected = await promoCacheService.exists(cacheKey);
55
+ if (alreadyCollected) {
56
+ return res.status(400).json({
57
+ message: "You have already collected this promotion",
58
+ promotion,
59
+ });
60
+ }
61
+ // Add promotion to customer's cache
62
+ await promoCacheService.set(cacheKey, promotion_id);
63
+ res.status(201).json({
64
+ message: "Promotion collected successfully",
65
+ promotion,
66
+ });
67
+ }
68
+ catch (error) {
69
+ console.error("Error collecting promotion:", error);
70
+ res.status(500).json({
71
+ message: "Failed to collect promotion",
72
+ error: error instanceof Error ? error.message : String(error),
73
+ });
74
+ }
75
+ };
76
+ exports.POST = POST;
77
+ /**
78
+ * GET handler for listing all available promotions for collection
79
+ * Returns promotions that are enabled for collection but not yet collected by the customer
80
+ */
81
+ const GET = async (req, res) => {
82
+ const customerId = req.auth_context.actor_id;
83
+ if (!customerId) {
84
+ return res.status(401).json({
85
+ message: "Customer must be authenticated",
86
+ });
87
+ }
88
+ try {
89
+ // Get all collectable promotions
90
+ const usablePromoService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
91
+ const usablePromotions = await usablePromoService.listUsablePromotions({
92
+ enabled: true,
93
+ });
94
+ if (usablePromotions.length === 0) {
95
+ return res.status(200).json({
96
+ promotions: [],
97
+ count: 0,
98
+ });
99
+ }
100
+ const promotionIds = usablePromotions.map((up) => up.promotion_id);
101
+ // Get full promotion details
102
+ const promotionService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
103
+ const promotions = await promotionService.listPromotions({
104
+ id: promotionIds,
105
+ }, {
106
+ relations: ["campaign"],
107
+ });
108
+ // Check which ones the customer has already collected
109
+ const promoCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
110
+ const promotionsWithStatus = await Promise.all(promotions.map(async (promotion) => {
111
+ const cacheKey = `user:${customerId}:promotion:${promotion.id}`;
112
+ const isCollected = await promoCacheService.exists(cacheKey);
113
+ return {
114
+ ...promotion,
115
+ is_collected: isCollected,
116
+ };
117
+ }));
118
+ // Filter to only show uncollected promotions (optional - depends on UX requirements)
119
+ // You can remove this filter if you want to show all promotions with collected status
120
+ const availablePromotions = promotionsWithStatus.filter((p) => !p.is_collected);
121
+ res.status(200).json({
122
+ promotions: availablePromotions,
123
+ count: availablePromotions.length,
124
+ total: promotionsWithStatus.length,
125
+ });
126
+ }
127
+ catch (error) {
128
+ console.error("Error fetching available promotions:", error);
129
+ res.status(500).json({
130
+ message: "Failed to fetch available promotions",
131
+ error: error instanceof Error ? error.message : String(error),
132
+ });
133
+ }
134
+ };
135
+ exports.GET = GET;
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFLNkI7QUFDN0IscURBQW9EO0FBQ3BELHNFQUEwRTtBQUUxRSxnRUFBb0U7QUFHcEU7OztHQUdHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFnQyxDQUFDO0lBRTlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSwwQkFBMEI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBRTdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxnQ0FBZ0M7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILDBEQUEwRDtRQUMxRCxNQUFNLGtCQUFrQixHQUN0QixxQkFBUyxDQUFDLE9BQU8sQ0FBMkIsa0NBQW1CLENBQUMsQ0FBQztRQUVuRSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUN0RSxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxD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
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retrieveCustomerMembershipTierWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const membership_1 = require("../../modules/membership");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const retrieveCustomerMembershipTierStep = (0, workflows_sdk_1.createStep)("retrieve-customer-membership-tier", async (data, { container }) => {
8
+ const membershipModuleService = container.resolve(membership_1.MEMBERSHIP_MODULE);
9
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
10
+ try {
11
+ // Query customer with membership relationship
12
+ const { data: [customer], } = await query.graph({
13
+ entity: "customer",
14
+ fields: ["*", "membership.*"],
15
+ filters: {
16
+ id: data.customer_id,
17
+ },
18
+ });
19
+ if (!customer || !customer.membership) {
20
+ return new workflows_sdk_1.StepResponse({
21
+ membership: null,
22
+ member_tier: null,
23
+ });
24
+ }
25
+ const membership = customer.membership;
26
+ // Get the member tier if it exists
27
+ let memberTier = null;
28
+ if (membership.member_tier_id) {
29
+ const [tier] = await membershipModuleService.listMemberTiers({
30
+ id: membership.member_tier_id,
31
+ });
32
+ memberTier = tier ? tier : null;
33
+ }
34
+ return new workflows_sdk_1.StepResponse({
35
+ membership: {
36
+ id: membership.id,
37
+ membership_points: membership.membership_points,
38
+ member_tier_id: membership.member_tier_id,
39
+ },
40
+ member_tier: memberTier,
41
+ });
42
+ }
43
+ catch (error) {
44
+ console.error("Error in retrieveCustomerMembershipTierStep:", error);
45
+ return new workflows_sdk_1.StepResponse({
46
+ membership: null,
47
+ member_tier: null,
48
+ });
49
+ }
50
+ });
51
+ exports.retrieveCustomerMembershipTierWorkflow = (0, workflows_sdk_1.createWorkflow)("retrieve-customer-membership-tier", (input) => {
52
+ const result = retrieveCustomerMembershipTierStep(input);
53
+ return new workflows_sdk_1.WorkflowResponse(result);
54
+ });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtY3VzdG9tZXItbWVtYmVyc2hpcC10aWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tZW1iZXJzaGlwL3JldHJpZXZlLWN1c3RvbWVyLW1lbWJlcnNoaXAtdGllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MseURBQTZEO0FBRTdELHFEQUFzRTtBQTRCdEUsTUFBTSxrQ0FBa0MsR0FBRyxJQUFBLDBCQUFVLEVBQ25ELG1DQUFtQyxFQUNuQyxLQUFLLEVBQ0gsSUFBeUMsRUFDekMsRUFBRSxTQUFTLEVBQUUsRUFDZ0QsRUFBRTtJQUMvRCxNQUFNLHVCQUF1QixHQUMzQixTQUFTLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFDLENBQUM7SUFDdkMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqRSxJQUFJLENBQUM7UUFDSCw4Q0FBOEM7UUFDOUMsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUNqQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsVUFBVTtZQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO1lBQzdCLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDckI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSw0QkFBWSxDQUFDO2dCQUN0QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsV0FBVyxFQUFFLElBQUk7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFFdkMsbUNBQW1DO1FBQ25DLElBQUksVUFBVSxHQUEwQixJQUFJLENBQUM7UUFDN0MsSUFBSSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sdUJBQXVCLENBQUMsZUFBZSxDQUFDO2dCQUMzRCxFQUFFLEVBQUUsVUFBVSxDQUFDLGNBQWM7YUFDOUIsQ0FBQyxDQUFDO1lBQ0gsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUUsSUFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNqQixpQkFBaUIsRUFBRSxVQUFVLENBQUMsaUJBQWlCO2dCQUMvQyxjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWM7YUFDMUM7WUFDRCxXQUFXLEVBQUUsVUFBVTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSxzQ0FBc0MsR0FBRyxJQUFBLDhCQUFjLEVBQ2xFLG1DQUFtQyxFQUNuQyxDQUFDLEtBQTBDLEVBQUUsRUFBRTtJQUM3QyxNQUFNLE1BQU0sR0FBRyxrQ0FBa0MsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodashventure/medusa-membership",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",