@lodashventure/medusa-membership 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +19 -1170
- package/.medusa/server/src/admin/index.mjs +18 -1170
- package/.medusa/server/src/api/middlewares/consent.js +19 -1
- package/.medusa/server/src/api/middlewares/member-tiers.js +5 -1
- package/.medusa/server/src/api/middlewares/notifications.js +22 -1
- package/.medusa/server/src/api/store/customers/me/consents/[keyId]/route.js +98 -12
- package/.medusa/server/src/api/store/customers/me/consents/route.js +31 -8
- package/.medusa/server/src/api/store/customers/me/consents/settings/route.js +110 -0
- package/.medusa/server/src/api/store/customers/me/notifications/settings/route.js +105 -0
- package/.medusa/server/src/workflows/membership-consent/consent-update-notification.js +62 -0
- package/.medusa/server/src/workflows/membership-consent/retrieve-membership-consent.js +5 -8
- package/package.json +8 -4
- package/.medusa/server/src/api/store/customers/me/notifications/[key]/route.js +0 -21
- package/.medusa/server/src/api/store/promotion-codes/route.js +0 -66
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodashventure/medusa-membership",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "A starter for Medusa plugins.",
|
|
5
5
|
"author": "Medusa (https://medusajs.com)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,16 +60,16 @@
|
|
|
60
60
|
"@medusajs/cli": "2.10.0",
|
|
61
61
|
"@medusajs/framework": "2.10.0",
|
|
62
62
|
"@medusajs/icons": "^2.10.0",
|
|
63
|
+
"@medusajs/js-sdk": "*",
|
|
63
64
|
"@medusajs/medusa": "2.10.0",
|
|
64
65
|
"@medusajs/test-utils": "2.10.0",
|
|
65
66
|
"@medusajs/ui": "4.0.3",
|
|
66
|
-
"@medusajs/js-sdk": "*",
|
|
67
|
-
"@tanstack/react-query": "*",
|
|
68
67
|
"@mikro-orm/cli": "6.4.3",
|
|
69
68
|
"@mikro-orm/core": "6.4.3",
|
|
70
69
|
"@mikro-orm/knex": "6.4.3",
|
|
71
70
|
"@mikro-orm/migrations": "6.4.3",
|
|
72
71
|
"@mikro-orm/postgresql": "6.4.3",
|
|
72
|
+
"@tanstack/react-query": "*",
|
|
73
73
|
"awilix": "^8.0.1",
|
|
74
74
|
"pg": "^8.13.0"
|
|
75
75
|
},
|
|
@@ -77,6 +77,10 @@
|
|
|
77
77
|
"node": ">=20"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"
|
|
80
|
+
"axios": "^1.12.2",
|
|
81
|
+
"dayjs": "^1.11.13",
|
|
82
|
+
"ioredis": "^5.8.1",
|
|
83
|
+
"thai-address-autocomplete-react": "^1.2.2",
|
|
84
|
+
"zod": "^4.1.12"
|
|
81
85
|
}
|
|
82
86
|
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PATCH = void 0;
|
|
4
|
-
const update_membership_notification_1 = require("../../../../../../workflows/membership-notification/update-membership-notification");
|
|
5
|
-
const PATCH = async (req, res) => {
|
|
6
|
-
const userId = req.auth_context.actor_id;
|
|
7
|
-
const notificationKey = req.params.key;
|
|
8
|
-
const enable = req.body.enable;
|
|
9
|
-
const notifications = await update_membership_notification_1.updateMembershipNotificationWorkflow.run({
|
|
10
|
-
input: [
|
|
11
|
-
{
|
|
12
|
-
customer_id: userId,
|
|
13
|
-
notification_key: notificationKey,
|
|
14
|
-
enable: enable,
|
|
15
|
-
},
|
|
16
|
-
],
|
|
17
|
-
});
|
|
18
|
-
res.json(notifications.result.notifications);
|
|
19
|
-
};
|
|
20
|
-
exports.PATCH = PATCH;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9ub3RpZmljYXRpb25zL1trZXldL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLHVJQUEwSTtBQUVuSSxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQ3hCLEdBQW9ELEVBQ3BELEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUN6QyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN2QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUUvQixNQUFNLGFBQWEsR0FBRyxNQUFNLHFFQUFvQyxDQUFDLEdBQUcsQ0FBQztRQUNuRSxLQUFLLEVBQUU7WUFDTDtnQkFDRSxXQUFXLEVBQUUsTUFBTTtnQkFDbkIsZ0JBQWdCLEVBQUUsZUFBZTtnQkFDakMsTUFBTSxFQUFFLE1BQU07YUFDZjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQW5CVyxRQUFBLEtBQUssU0FtQmhCIn0=
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.POST = exports.GET = void 0;
|
|
7
|
-
const framework_1 = require("@medusajs/framework");
|
|
8
|
-
const utils_1 = require("@medusajs/framework/utils");
|
|
9
|
-
const dayjs_1 = __importDefault(require("dayjs"));
|
|
10
|
-
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
11
|
-
const promotion_cache_1 = require("../../../modules/promotion-cache");
|
|
12
|
-
const usable_promo_1 = require("../../../modules/usable-promo");
|
|
13
|
-
dayjs_1.default.extend(utc_1.default);
|
|
14
|
-
const GET = async (req, res) => {
|
|
15
|
-
const query = framework_1.container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
16
|
-
const { data: collectablePromotions } = await query.graph({
|
|
17
|
-
entity: "usable_promotion",
|
|
18
|
-
fields: ["*", "promotion.*", "promotion.campaign.ends_at"],
|
|
19
|
-
filters: {
|
|
20
|
-
enabled: true,
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
const filteredCollectablePromotions = collectablePromotions.filter((item) => item.promotion?.status === "active" &&
|
|
24
|
-
(!item.promotion?.campaign?.ends_at ||
|
|
25
|
-
item.promotion?.campaign?.ends_at > (0, dayjs_1.default)().toDate()));
|
|
26
|
-
res.json(filteredCollectablePromotions);
|
|
27
|
-
};
|
|
28
|
-
exports.GET = GET;
|
|
29
|
-
const POST = async (req, res) => {
|
|
30
|
-
const { code } = req.body;
|
|
31
|
-
const cache = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
|
|
32
|
-
const promotionModuleService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
|
|
33
|
-
const usablePromotionModuleService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
|
|
34
|
-
const [promotion] = await promotionModuleService.listPromotions({
|
|
35
|
-
code,
|
|
36
|
-
is_automatic: false,
|
|
37
|
-
status: [utils_1.PromotionStatus.ACTIVE],
|
|
38
|
-
}, {
|
|
39
|
-
relations: ["campaign"],
|
|
40
|
-
});
|
|
41
|
-
if (!promotion) {
|
|
42
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Promotion not found");
|
|
43
|
-
}
|
|
44
|
-
const cacheKey = `user:${req.auth_context.actor_id}:promotion:${promotion.id}`;
|
|
45
|
-
const cached = await cache.get(cacheKey);
|
|
46
|
-
if (cached) {
|
|
47
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.DUPLICATE_ERROR, "Promotion already collected");
|
|
48
|
-
}
|
|
49
|
-
const [collectablePromotion] = await usablePromotionModuleService.listUsablePromotions({
|
|
50
|
-
promotion_id: promotion.id,
|
|
51
|
-
});
|
|
52
|
-
if (!collectablePromotion) {
|
|
53
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Promotion not found");
|
|
54
|
-
}
|
|
55
|
-
let ttl = 60 * 60 * 24 * 365; //default 1 year
|
|
56
|
-
if (promotion.campaign?.ends_at) {
|
|
57
|
-
ttl = dayjs_1.default.utc(promotion.campaign?.ends_at).diff(dayjs_1.default.utc(), "second");
|
|
58
|
-
}
|
|
59
|
-
if (ttl <= 0) {
|
|
60
|
-
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Promotion expired");
|
|
61
|
-
}
|
|
62
|
-
await cache.set(`user:${req.auth_context.actor_id}:promotion:${promotion.id}`, promotion.id, ttl);
|
|
63
|
-
res.json(promotion);
|
|
64
|
-
};
|
|
65
|
-
exports.POST = POST;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtREFJNkI7QUFDN0IscURBS21DO0FBQ25DLGtEQUEwQjtBQUMxQiwyREFBbUM7QUFFbkMsc0VBQTBFO0FBRTFFLGdFQUFvRTtBQUVwRSxlQUFLLENBQUMsTUFBTSxDQUFDLGFBQUcsQ0FBQyxDQUFDO0FBQ1gsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4RCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsNEJBQTRCLENBQUM7UUFDMUQsT0FBTyxFQUFFO1lBQ1AsT0FBTyxFQUFFLElBQUk7U0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sNkJBQTZCLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUNoRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssUUFBUTtRQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTztZQUNqQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsSUFBQSxlQUFLLEdBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUMxRCxDQUFDO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztB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
|