@xbstracts/medusa-coupons 0.0.1
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 +3207 -0
- package/.medusa/server/src/admin/index.mjs +3253 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/entitlements/route.js +9 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/mirror-promotion/route.js +132 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/preview/route.js +28 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/route.js +18 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/variants/[variant_config_id]/route.js +14 -0
- package/.medusa/server/src/api/admin/coupon-products/[product_id]/variants/route.js +14 -0
- package/.medusa/server/src/api/admin/coupon-products/configs/[id]/route.js +53 -0
- package/.medusa/server/src/api/admin/coupon-products/configs/[id]/variants/[variant_config_id]/route.js +26 -0
- package/.medusa/server/src/api/admin/coupon-products/configs/[id]/variants/route.js +27 -0
- package/.medusa/server/src/api/admin/coupon-products/configs/route.js +36 -0
- package/.medusa/server/src/api/admin/coupon-products/entitlements/[id]/cancel/route.js +15 -0
- package/.medusa/server/src/api/admin/coupon-products/entitlements/[id]/redeem/route.js +15 -0
- package/.medusa/server/src/api/admin/coupon-products/entitlements/[id]/route.js +16 -0
- package/.medusa/server/src/api/admin/coupon-products/entitlements/route.js +22 -0
- package/.medusa/server/src/api/admin/coupon-products/options/route.js +9 -0
- package/.medusa/server/src/api/admin/coupon-products/products/route.js +16 -0
- package/.medusa/server/src/api/admin/coupon-products/route.js +13 -0
- package/.medusa/server/src/api/admin/coupon-products/uploads/route.js +7 -0
- package/.medusa/server/src/api/coupon-product-routes.js +546 -0
- package/.medusa/server/src/api/entitlement-utils.js +90 -0
- package/.medusa/server/src/api/media-upload.js +57 -0
- package/.medusa/server/src/api/middlewares.js +92 -0
- package/.medusa/server/src/api/product-utils.js +304 -0
- package/.medusa/server/src/api/promotion-code-resolver.js +225 -0
- package/.medusa/server/src/api/seller-utils.js +101 -0
- package/.medusa/server/src/api/utils.js +25 -0
- package/.medusa/server/src/api/validators.js +199 -0
- package/.medusa/server/src/api/vendor/coupon-products/[product_id]/entitlements/route.js +9 -0
- package/.medusa/server/src/api/vendor/coupon-products/[product_id]/route.js +18 -0
- package/.medusa/server/src/api/vendor/coupon-products/[product_id]/variants/[variant_config_id]/route.js +14 -0
- package/.medusa/server/src/api/vendor/coupon-products/[product_id]/variants/route.js +14 -0
- package/.medusa/server/src/api/vendor/coupon-products/configs/[id]/route.js +60 -0
- package/.medusa/server/src/api/vendor/coupon-products/configs/[id]/variants/[variant_config_id]/route.js +41 -0
- package/.medusa/server/src/api/vendor/coupon-products/configs/[id]/variants/route.js +45 -0
- package/.medusa/server/src/api/vendor/coupon-products/configs/route.js +51 -0
- package/.medusa/server/src/api/vendor/coupon-products/entitlements/[id]/route.js +25 -0
- package/.medusa/server/src/api/vendor/coupon-products/entitlements/route.js +45 -0
- package/.medusa/server/src/api/vendor/coupon-products/options/route.js +9 -0
- package/.medusa/server/src/api/vendor/coupon-products/products/route.js +19 -0
- package/.medusa/server/src/api/vendor/coupon-products/route.js +13 -0
- package/.medusa/server/src/api/vendor/coupon-products/uploads/route.js +7 -0
- package/.medusa/server/src/jobs/retry-coupon-media-deletes.js +14 -0
- package/.medusa/server/src/links/coupon-issuance-order-line-item.js +17 -0
- package/.medusa/server/src/links/coupon-issuance-order.js +15 -0
- package/.medusa/server/src/links/coupon-product-config-product.js +17 -0
- package/.medusa/server/src/links/coupon-product-variant-config-variant.js +17 -0
- package/.medusa/server/src/links/coupon-promotion-mirror-promotion.js +17 -0
- package/.medusa/server/src/links/customer-coupon-entitlement-customer.js +15 -0
- package/.medusa/server/src/modules/coupon/constants.js +46 -0
- package/.medusa/server/src/modules/coupon/index.js +16 -0
- package/.medusa/server/src/modules/coupon/loaders/reconcile-coupon-products.js +65 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260709000000.js +40 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260710000000.js +22 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260711000000.js +25 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260712000000.js +78 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260719000000.js +19 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260722000000.js +17 -0
- package/.medusa/server/src/modules/coupon/migrations/Migration20260723000000.js +18 -0
- package/.medusa/server/src/modules/coupon/models/coupon-entitlement-promotion.js +31 -0
- package/.medusa/server/src/modules/coupon/models/coupon-entitlement-seller.js +28 -0
- package/.medusa/server/src/modules/coupon/models/coupon-issuance.js +35 -0
- package/.medusa/server/src/modules/coupon/models/coupon-media-asset.js +41 -0
- package/.medusa/server/src/modules/coupon/models/coupon-product-config.js +45 -0
- package/.medusa/server/src/modules/coupon/models/coupon-product-variant-config.js +36 -0
- package/.medusa/server/src/modules/coupon/models/coupon-promotion-mirror.js +27 -0
- package/.medusa/server/src/modules/coupon/models/customer-coupon-entitlement.js +56 -0
- package/.medusa/server/src/modules/coupon/models/index.js +23 -0
- package/.medusa/server/src/modules/coupon/payment-order-utils.js +76 -0
- package/.medusa/server/src/modules/coupon/product-metadata.js +24 -0
- package/.medusa/server/src/modules/coupon/purchase-conditions.js +138 -0
- package/.medusa/server/src/modules/coupon/service.js +628 -0
- package/.medusa/server/src/modules/coupon/types.js +3 -0
- package/.medusa/server/src/modules/coupon/utils.js +302 -0
- package/.medusa/server/src/subscribers/issue-coupons-from-order.js +88 -0
- package/.medusa/server/src/vendor/index.mjs +3237 -0
- package/.medusa/server/src/workflows/hooks/validate-coupon-add-to-cart.js +13 -0
- package/.medusa/server/src/workflows/hooks/validate-coupon-complete-cart.js +8 -0
- package/.medusa/server/src/workflows/index.js +21 -0
- package/.medusa/server/src/workflows/steps.js +27 -0
- package/.medusa/server/src/workflows/validate-coupon-purchase.js +85 -0
- package/README.md +84 -0
- package/package.json +102 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../../../coupon-product-routes");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.listProductEntitlements)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.GET = GET;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vZW50aXRsZW1lbnRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZFQUEyRTtBQUVwRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsT0FBTyxJQUFBLCtDQUF1QixFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDbkQsQ0FBQyxDQUFBO0FBRlksUUFBQSxHQUFHLE9BRWYifQ==
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
exports.buildPromotionInput = buildPromotionInput;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const coupon_1 = require("../../../../../modules/coupon");
|
|
8
|
+
const utils_2 = require("../../../../../modules/coupon/utils");
|
|
9
|
+
const utils_3 = require("../../../../utils");
|
|
10
|
+
function buildPromotionInput(config) {
|
|
11
|
+
if (config.code_strategy !== "shared_code" || !config.shared_code) {
|
|
12
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Only shared_code coupon configs can be mirrored to a reusable Medusa promotion in MVP");
|
|
13
|
+
}
|
|
14
|
+
const basePromotion = {
|
|
15
|
+
code: config.shared_code,
|
|
16
|
+
type: utils_1.PromotionType.STANDARD,
|
|
17
|
+
status: config.promotion_status === "active"
|
|
18
|
+
? utils_1.PromotionStatus.ACTIVE
|
|
19
|
+
: config.promotion_status === "inactive"
|
|
20
|
+
? utils_1.PromotionStatus.INACTIVE
|
|
21
|
+
: utils_1.PromotionStatus.DRAFT,
|
|
22
|
+
is_automatic: false,
|
|
23
|
+
campaign_id: config.campaign_id || undefined,
|
|
24
|
+
...(config.promotion_template || {}),
|
|
25
|
+
};
|
|
26
|
+
if (config.benefit_type === "fixed_amount") {
|
|
27
|
+
if (config.amounts.length > 1) {
|
|
28
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Multi-currency fixed coupons are applied through issued entitlements and cannot use a single reusable promotion mirror");
|
|
29
|
+
}
|
|
30
|
+
const configuredTarget = config.promotion_template
|
|
31
|
+
?.application_method?.target_type;
|
|
32
|
+
const targetType = configuredTarget === "order"
|
|
33
|
+
? utils_1.ApplicationMethodTargetType.ORDER
|
|
34
|
+
: utils_1.ApplicationMethodTargetType.ITEMS;
|
|
35
|
+
const allocation = (0, utils_2.resolvePromotionAllocation)(config.promotion_template, targetType === utils_1.ApplicationMethodTargetType.ORDER ? "order" : "items");
|
|
36
|
+
return {
|
|
37
|
+
...basePromotion,
|
|
38
|
+
application_method: {
|
|
39
|
+
type: utils_1.ApplicationMethodType.FIXED,
|
|
40
|
+
value: config.amount || 0,
|
|
41
|
+
currency_code: config.currency_code,
|
|
42
|
+
target_type: targetType,
|
|
43
|
+
allocation: allocation === "across"
|
|
44
|
+
? utils_1.ApplicationMethodAllocation.ACROSS
|
|
45
|
+
: allocation === "once"
|
|
46
|
+
? utils_1.ApplicationMethodAllocation.ONCE
|
|
47
|
+
: utils_1.ApplicationMethodAllocation.EACH,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (config.benefit_type === "percentage") {
|
|
52
|
+
const configuredTarget = config.promotion_template
|
|
53
|
+
?.application_method?.target_type;
|
|
54
|
+
const targetType = configuredTarget === "order"
|
|
55
|
+
? utils_1.ApplicationMethodTargetType.ORDER
|
|
56
|
+
: utils_1.ApplicationMethodTargetType.ITEMS;
|
|
57
|
+
const allocation = (0, utils_2.resolvePromotionAllocation)(config.promotion_template, targetType === utils_1.ApplicationMethodTargetType.ORDER ? "order" : "items");
|
|
58
|
+
return {
|
|
59
|
+
...basePromotion,
|
|
60
|
+
application_method: {
|
|
61
|
+
type: utils_1.ApplicationMethodType.PERCENTAGE,
|
|
62
|
+
value: config.percentage || 0,
|
|
63
|
+
target_type: targetType,
|
|
64
|
+
allocation: allocation === "across"
|
|
65
|
+
? utils_1.ApplicationMethodAllocation.ACROSS
|
|
66
|
+
: allocation === "once"
|
|
67
|
+
? utils_1.ApplicationMethodAllocation.ONCE
|
|
68
|
+
: utils_1.ApplicationMethodAllocation.EACH,
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (config.benefit_type === "free_shipping") {
|
|
73
|
+
return {
|
|
74
|
+
...basePromotion,
|
|
75
|
+
application_method: {
|
|
76
|
+
type: utils_1.ApplicationMethodType.PERCENTAGE,
|
|
77
|
+
value: 100,
|
|
78
|
+
target_type: utils_1.ApplicationMethodTargetType.SHIPPING_METHODS,
|
|
79
|
+
allocation: utils_1.ApplicationMethodAllocation.EACH,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "This coupon benefit type cannot be mirrored to Medusa promotions yet");
|
|
84
|
+
}
|
|
85
|
+
const POST = async (req, res) => {
|
|
86
|
+
const productId = (0, utils_3.readStringParam)(req.params, "product_id");
|
|
87
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
88
|
+
const [config] = await service.listCouponProductConfigs({
|
|
89
|
+
product_id: productId,
|
|
90
|
+
});
|
|
91
|
+
if (!config) {
|
|
92
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Coupon product config was not found");
|
|
93
|
+
}
|
|
94
|
+
const resolved = (0, utils_2.mergeVariantConfig)(config);
|
|
95
|
+
try {
|
|
96
|
+
const promotionInput = buildPromotionInput(resolved);
|
|
97
|
+
const { result } = await (0, core_flows_1.createPromotionsWorkflow)(req.scope).run({
|
|
98
|
+
input: {
|
|
99
|
+
promotionsData: [promotionInput],
|
|
100
|
+
additional_data: {
|
|
101
|
+
coupon_product_config_id: config.id,
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
const promotion = result[0];
|
|
106
|
+
const mirror = await service.createPromotionMirror({
|
|
107
|
+
config_id: config.id,
|
|
108
|
+
promotion_id: promotion.id,
|
|
109
|
+
status: "created",
|
|
110
|
+
metadata: {
|
|
111
|
+
promotion_input: promotionInput,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
res.json({
|
|
115
|
+
coupon_promotion_mirror: mirror,
|
|
116
|
+
promotion,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
const mirror = await service.createPromotionMirror({
|
|
121
|
+
config_id: config.id,
|
|
122
|
+
status: "failed",
|
|
123
|
+
last_error: error instanceof Error ? error.message : String(error),
|
|
124
|
+
});
|
|
125
|
+
res.status(400).json({
|
|
126
|
+
coupon_promotion_mirror: mirror,
|
|
127
|
+
message: mirror.last_error,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
exports.POST = POST;
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vbWlycm9yLXByb21vdGlvbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtQkEsa0RBb0dDO0FBdEhELHFEQU9rQztBQUNsQyw0REFBc0U7QUFDdEUsMERBQTZEO0FBRzdELCtEQUc0QztBQUM1Qyw2Q0FBbUQ7QUFFbkQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBNEI7SUFDOUQsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsRSxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5Qix1RkFBdUYsQ0FDeEYsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRztRQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDeEIsSUFBSSxFQUFFLHFCQUFhLENBQUMsUUFBUTtRQUM1QixNQUFNLEVBQ0osTUFBTSxDQUFDLGdCQUFnQixLQUFLLFFBQVE7WUFDbEMsQ0FBQyxDQUFDLHVCQUFlLENBQUMsTUFBTTtZQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixLQUFLLFVBQVU7Z0JBQ3RDLENBQUMsQ0FBQyx1QkFBZSxDQUFDLFFBQVE7Z0JBQzFCLENBQUMsQ0FBQyx1QkFBZSxDQUFDLEtBQUs7UUFDN0IsWUFBWSxFQUFFLEtBQUs7UUFDbkIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksU0FBUztRQUM1QyxHQUFHLENBQUMsTUFBTSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztLQUNyQyxDQUFBO0lBRUQsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQzNDLElBQUksTUFBTSxDQUFD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
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const coupon_1 = require("../../../../../modules/coupon");
|
|
6
|
+
const utils_2 = require("../../../../../modules/coupon/utils");
|
|
7
|
+
const utils_3 = require("../../../../utils");
|
|
8
|
+
const POST = async (req, res) => {
|
|
9
|
+
const productId = (0, utils_3.readStringParam)(req.params, "product_id");
|
|
10
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
11
|
+
const [config] = await service.listCouponProductConfigs({
|
|
12
|
+
product_id: productId,
|
|
13
|
+
});
|
|
14
|
+
if (!config) {
|
|
15
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, "Coupon product config was not found");
|
|
16
|
+
}
|
|
17
|
+
const variantConfigs = await service.listCouponProductVariantConfigs({
|
|
18
|
+
product_config_id: config.id,
|
|
19
|
+
});
|
|
20
|
+
res.json({
|
|
21
|
+
coupon_product_config: config,
|
|
22
|
+
resolved_product_config: (0, utils_2.mergeVariantConfig)(config),
|
|
23
|
+
coupon_product_variant_configs: variantConfigs,
|
|
24
|
+
resolved_variant_configs: variantConfigs.map((variantConfig) => (0, utils_2.mergeVariantConfig)(config, variantConfig)),
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.POST = POST;
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vcHJldmlldy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsMERBQTZEO0FBRTdELCtEQUF3RTtBQUN4RSw2Q0FBbUQ7QUFFNUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzNELE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLHdCQUF3QixDQUFDO1FBQ3RELFVBQVUsRUFBRSxTQUFTO0tBQ2YsQ0FBQyxDQUFBO0lBRVQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IscUNBQXFDLENBQ3RDLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxPQUFPLENBQUMsK0JBQStCLENBQUM7UUFDbkUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLEVBQUU7S0FDdEIsQ0FBQyxDQUFBO0lBRVQsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLHFCQUFxQixFQUFFLE1BQU07UUFDN0IsdUJBQXVCLEVBQUUsSUFBQSwwQkFBa0IsRUFBQyxNQUFNLENBQUM7UUFDbkQsOEJBQThCLEVBQUUsY0FBYztRQUM5Qyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FDN0QsSUFBQSwwQkFBa0IsRUFBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQzFDO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBMUJZLFFBQUEsSUFBSSxRQTBCaEIifQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = exports.POST = exports.PATCH = exports.GET = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../../coupon-product-routes");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.retrieveCouponProduct)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.GET = GET;
|
|
9
|
+
const PATCH = async (req, res) => {
|
|
10
|
+
return (0, coupon_product_routes_1.updateCouponProduct)(req, res, "admin");
|
|
11
|
+
};
|
|
12
|
+
exports.PATCH = PATCH;
|
|
13
|
+
exports.POST = exports.PATCH;
|
|
14
|
+
const DELETE = async (req, res) => {
|
|
15
|
+
return (0, coupon_product_routes_1.deleteCouponProduct)(req, res, "admin");
|
|
16
|
+
};
|
|
17
|
+
exports.DELETE = DELETE;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMEVBSXVDO0FBRWhDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxPQUFPLElBQUEsNkNBQXFCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUNqRCxDQUFDLENBQUE7QUFGWSxRQUFBLEdBQUcsT0FFZjtBQUVNLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNyRSxPQUFPLElBQUEsMkNBQW1CLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUMvQyxDQUFDLENBQUE7QUFGWSxRQUFBLEtBQUssU0FFakI7QUFFWSxRQUFBLElBQUksR0FBRyxhQUFLLENBQUE7QUFFbEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3RFLE9BQU8sSUFBQSwyQ0FBbUIsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUZZLFFBQUEsTUFBTSxVQUVsQiJ9
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = exports.POST = exports.PATCH = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../../../../coupon-product-routes");
|
|
5
|
+
const PATCH = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.updateCouponProductVariant)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.PATCH = PATCH;
|
|
9
|
+
exports.POST = exports.PATCH;
|
|
10
|
+
const DELETE = async (req, res) => {
|
|
11
|
+
return (0, coupon_product_routes_1.deleteCouponProductVariant)(req, res, "admin");
|
|
12
|
+
};
|
|
13
|
+
exports.DELETE = DELETE;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vdmFyaWFudHMvW3ZhcmlhbnRfY29uZmlnX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnRkFHNkM7QUFFdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3JFLE9BQU8sSUFBQSxrREFBMEIsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQ3RELENBQUMsQ0FBQTtBQUZZLFFBQUEsS0FBSyxTQUVqQjtBQUVZLFFBQUEsSUFBSSxHQUFHLGFBQUssQ0FBQTtBQUVsQixNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDdEUsT0FBTyxJQUFBLGtEQUEwQixFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDdEQsQ0FBQyxDQUFBO0FBRlksUUFBQSxNQUFNLFVBRWxCIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PATCH = exports.POST = exports.GET = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../../../coupon-product-routes");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.listCouponProductVariants)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.GET = GET;
|
|
9
|
+
const POST = async (req, res) => {
|
|
10
|
+
return (0, coupon_product_routes_1.upsertCouponProductVariant)(req, res, "admin");
|
|
11
|
+
};
|
|
12
|
+
exports.POST = POST;
|
|
13
|
+
exports.PATCH = exports.POST;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9bcHJvZHVjdF9pZF0vdmFyaWFudHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkVBRzBDO0FBRW5DLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxPQUFPLElBQUEsaURBQXlCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUNyRCxDQUFDLENBQUE7QUFGWSxRQUFBLEdBQUcsT0FFZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRSxPQUFPLElBQUEsa0RBQTBCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUN0RCxDQUFDLENBQUE7QUFGWSxRQUFBLElBQUksUUFFaEI7QUFFWSxRQUFBLEtBQUssR0FBRyxZQUFJLENBQUEifQ==
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = exports.POST = exports.GET = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../../validators");
|
|
6
|
+
const utils_1 = require("../../../../utils");
|
|
7
|
+
const product_utils_1 = require("../../../../product-utils");
|
|
8
|
+
const GET = async (req, res) => {
|
|
9
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
10
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
11
|
+
const config = await service.retrieveCouponProductConfig(id);
|
|
12
|
+
const variantConfigs = await service.listCouponProductVariantConfigs({
|
|
13
|
+
product_config_id: id,
|
|
14
|
+
});
|
|
15
|
+
res.json({
|
|
16
|
+
coupon_product_config: config,
|
|
17
|
+
coupon_product_variant_configs: variantConfigs,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
exports.GET = GET;
|
|
21
|
+
const POST = async (req, res) => {
|
|
22
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
23
|
+
const body = (0, utils_1.parseBody)(validators_1.UpdateCouponProductConfigBody, req.body);
|
|
24
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
25
|
+
const existing = await service.retrieveCouponProductConfig(id);
|
|
26
|
+
let conditions = body.purchase_conditions;
|
|
27
|
+
let options = null;
|
|
28
|
+
if (conditions !== undefined) {
|
|
29
|
+
options = await (0, product_utils_1.listCouponProductOptions)(req);
|
|
30
|
+
conditions = (0, product_utils_1.validateCouponPurchaseOptions)({ ...existing, ...body }, options);
|
|
31
|
+
}
|
|
32
|
+
const config = await service.updateProductConfig(id, {
|
|
33
|
+
...body,
|
|
34
|
+
...(conditions !== undefined ? { purchase_conditions: conditions } : {}),
|
|
35
|
+
});
|
|
36
|
+
if (conditions !== undefined && options) {
|
|
37
|
+
await (0, product_utils_1.synchronizeCouponProductSalesChannels)(req, existing.product_id, (0, product_utils_1.resolveCouponSalesChannelIds)(conditions, options));
|
|
38
|
+
}
|
|
39
|
+
res.json({ coupon_product_config: config });
|
|
40
|
+
};
|
|
41
|
+
exports.POST = POST;
|
|
42
|
+
const DELETE = async (req, res) => {
|
|
43
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
44
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
45
|
+
const config = await service.deleteProductConfig(id);
|
|
46
|
+
res.json({
|
|
47
|
+
id: config.id,
|
|
48
|
+
object: "coupon_product_config",
|
|
49
|
+
deleted: true,
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
exports.DELETE = DELETE;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9jb25maWdzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMERBQTZEO0FBRTdELHVEQUFzRTtBQUN0RSw2Q0FBOEQ7QUFDOUQsNkRBS2tDO0FBRTNCLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEVBQUUsR0FBRyxJQUFBLHVCQUFlLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQWEsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVELE1BQU0sY0FBYyxHQUFHLE1BQU0sT0FBTyxDQUFDLCtCQUErQixDQUFDO1FBQ25FLGlCQUFpQixFQUFFLEVBQUU7S0FDZixDQUFDLENBQUE7SUFFVCxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AscUJBQXFCLEVBQUUsTUFBTTtRQUM3Qiw4QkFBOEIsRUFBRSxjQUFjO0tBQy9DLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQVpZLFFBQUEsR0FBRyxPQVlmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUEsaUJBQVMsRUFBQywwQ0FBNkIsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDL0QsTUFBTSxPQUFPLEdBQXdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM5RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUE7SUFDekMsSUFBSSxPQUFPLEdBQWdFLElBQUksQ0FBQTtJQUMvRSxJQUFJLFVBQVUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsTUFBTSxJQUFBLHdDQUF3QixFQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzdDLFVBQVUsR0FBRyxJQUFBLDZDQUE2QixFQUN4QyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsSUFBSSxFQUFTLEVBQy9CLE9BQU8sQ0FDUixDQUFBO0lBQ0gsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRTtRQUNuRCxHQUFHLElBQUk7UUFDUCxHQUFHLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ3pFLENBQUMsQ0FBQTtJQUNGLElBQUksVUFBVSxLQUFLLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QyxNQUFNLElBQUEscURBQXFDLEVBQ3pDLEdBQUcsRUFDSCxRQUFRLENBQUMsVUFBVSxFQUNuQixJQUFBLDRDQUE0QixFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FDbEQsQ0FBQTtJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUM3QyxDQUFDLENBQUE7QUEzQlksUUFBQSxJQUFJLFFBMkJoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUN0RSxNQUFNLEVBQUUsR0FBRyxJQUFBLHVCQUFlLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLE9BQU8sR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQWEsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXBELEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBVlksUUFBQSxNQUFNLFVBVWxCIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = exports.POST = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../../../../validators");
|
|
6
|
+
const utils_1 = require("../../../../../../utils");
|
|
7
|
+
const POST = async (req, res) => {
|
|
8
|
+
const variantConfigId = (0, utils_1.readStringParam)(req.params, "variant_config_id");
|
|
9
|
+
const body = (0, utils_1.parseBody)(validators_1.UpdateCouponVariantConfigBody, req.body);
|
|
10
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
11
|
+
const config = await service.updateVariantConfig(variantConfigId, body);
|
|
12
|
+
res.json({ coupon_product_variant_config: config });
|
|
13
|
+
};
|
|
14
|
+
exports.POST = POST;
|
|
15
|
+
const DELETE = async (req, res) => {
|
|
16
|
+
const variantConfigId = (0, utils_1.readStringParam)(req.params, "variant_config_id");
|
|
17
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
18
|
+
await service.deleteCouponProductVariantConfigs(variantConfigId);
|
|
19
|
+
res.json({
|
|
20
|
+
id: variantConfigId,
|
|
21
|
+
object: "coupon_product_variant_config",
|
|
22
|
+
deleted: true,
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
exports.DELETE = DELETE;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9jb25maWdzL1tpZF0vdmFyaWFudHMvW3ZhcmlhbnRfY29uZmlnX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnRUFBbUU7QUFFbkUsNkRBQTRFO0FBQzVFLG1EQUFvRTtBQUU3RCxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDcEUsTUFBTSxlQUFlLEdBQUcsSUFBQSx1QkFBZSxFQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsQ0FBQTtJQUN4RSxNQUFNLElBQUksR0FBRyxJQUFBLGlCQUFTLEVBQUMsMENBQTZCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9ELE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRXZFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ3JELENBQUMsQ0FBQTtBQVBZLFFBQUEsSUFBSSxRQU9oQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUN0RSxNQUFNLGVBQWUsR0FBRyxJQUFBLHVCQUFlLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO0lBQ3hFLE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxPQUFPLENBQUMsaUNBQWlDLENBQUMsZUFBZSxDQUFDLENBQUE7SUFFaEUsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLEVBQUUsRUFBRSxlQUFlO1FBQ25CLE1BQU0sRUFBRSwrQkFBK0I7UUFDdkMsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFWWSxRQUFBLE1BQU0sVUFVbEIifQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../../../validators");
|
|
6
|
+
const utils_1 = require("../../../../../utils");
|
|
7
|
+
const GET = async (req, res) => {
|
|
8
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
9
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
10
|
+
const configs = await service.listCouponProductVariantConfigs({
|
|
11
|
+
product_config_id: id,
|
|
12
|
+
});
|
|
13
|
+
res.json({
|
|
14
|
+
coupon_product_variant_configs: configs,
|
|
15
|
+
count: configs.length,
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
exports.GET = GET;
|
|
19
|
+
const POST = async (req, res) => {
|
|
20
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
21
|
+
const body = (0, utils_1.parseBody)(validators_1.CreateCouponVariantConfigBody, req.body);
|
|
22
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
23
|
+
const config = await service.createVariantConfig(id, body);
|
|
24
|
+
res.status(201).json({ coupon_product_variant_config: config });
|
|
25
|
+
};
|
|
26
|
+
exports.POST = POST;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9jb25maWdzL1tpZF0vdmFyaWFudHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkRBQWdFO0FBRWhFLDBEQUF5RTtBQUN6RSxnREFBaUU7QUFFMUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVDLE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsK0JBQStCLENBQUM7UUFDNUQsaUJBQWlCLEVBQUUsRUFBRTtLQUNmLENBQUMsQ0FBQTtJQUVULEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCw4QkFBOEIsRUFBRSxPQUFPO1FBQ3ZDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN0QixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFYWSxRQUFBLEdBQUcsT0FXZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRSxNQUFNLEVBQUUsR0FBRyxJQUFBLHVCQUFlLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM1QyxNQUFNLElBQUksR0FBRyxJQUFBLGlCQUFTLEVBQUMsMENBQTZCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9ELE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRTFELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUNqRSxDQUFDLENBQUE7QUFQWSxRQUFBLElBQUksUUFPaEIifQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../validators");
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
const product_utils_1 = require("../../../product-utils");
|
|
8
|
+
const GET = async (req, res) => {
|
|
9
|
+
const query = validators_1.ListCouponConfigQuery.parse(req.query);
|
|
10
|
+
const filters = {};
|
|
11
|
+
if (query.product_id)
|
|
12
|
+
filters.product_id = query.product_id;
|
|
13
|
+
if (typeof query.enabled === "boolean")
|
|
14
|
+
filters.enabled = query.enabled;
|
|
15
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
16
|
+
const configs = await service.listCouponProductConfigs(filters);
|
|
17
|
+
res.json({
|
|
18
|
+
coupon_product_configs: configs,
|
|
19
|
+
count: configs.length,
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
exports.GET = GET;
|
|
23
|
+
const POST = async (req, res) => {
|
|
24
|
+
const body = (0, utils_1.parseBody)(validators_1.CreateCouponProductConfigBody, req.body);
|
|
25
|
+
const options = await (0, product_utils_1.listCouponProductOptions)(req);
|
|
26
|
+
const conditions = (0, product_utils_1.validateCouponPurchaseOptions)(body, options);
|
|
27
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
28
|
+
const config = await service.createProductConfig({
|
|
29
|
+
...body,
|
|
30
|
+
purchase_conditions: conditions,
|
|
31
|
+
});
|
|
32
|
+
await (0, product_utils_1.synchronizeCouponProductSalesChannels)(req, body.product_id, (0, product_utils_1.resolveCouponSalesChannelIds)(conditions, options));
|
|
33
|
+
res.status(201).json({ coupon_product_config: config });
|
|
34
|
+
};
|
|
35
|
+
exports.POST = POST;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9jb25maWdzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHVEQUEwRDtBQUUxRCxvREFHNEI7QUFDNUIsMENBQTBDO0FBQzFDLDBEQUsrQjtBQUV4QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxLQUFLLEdBQUcsa0NBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNwRCxNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBQzNDLElBQUksS0FBSyxDQUFDLFVBQVU7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7SUFDM0QsSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztRQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQTtJQUV2RSxNQUFNLE9BQU8sR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQWEsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLHdCQUF3QixDQUFDLE9BQWMsQ0FBQyxDQUFBO0lBRXRFLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxzQkFBc0IsRUFBRSxPQUFPO1FBQy9CLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTTtLQUN0QixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFiWSxRQUFBLEdBQUcsT0FhZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRSxNQUFNLElBQUksR0FBRyxJQUFBLGlCQUFTLEVBQUMsMENBQTZCLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQy9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSx3Q0FBd0IsRUFBQyxHQUFHLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFVBQVUsR0FBRyxJQUFBLDZDQUE2QixFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMvRCxNQUFNLE9BQU8sR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsc0JBQWEsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQy9DLEdBQUcsSUFBSTtRQUNQLG1CQUFtQixFQUFFLFVBQVU7S0FDaEMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxJQUFBLHFEQUFxQyxFQUN6QyxHQUFHLEVBQ0gsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFBLDRDQUE0QixFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FDbEQsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUN6RCxDQUFDLENBQUE7QUFoQlksUUFBQSxJQUFJLFFBZ0JoQiJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../../../validators");
|
|
6
|
+
const utils_1 = require("../../../../../utils");
|
|
7
|
+
const POST = async (req, res) => {
|
|
8
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
9
|
+
const body = (0, utils_1.parseBody)(validators_1.EntitlementActionBody, req.body);
|
|
10
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
11
|
+
const entitlement = await service.cancelEntitlement(id, body.metadata);
|
|
12
|
+
res.json({ customer_coupon_entitlement: entitlement });
|
|
13
|
+
};
|
|
14
|
+
exports.POST = POST;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9lbnRpdGxlbWVudHMvW2lkXS9jYW5jZWwvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkRBQWdFO0FBRWhFLDBEQUFpRTtBQUNqRSxnREFBaUU7QUFFMUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUEsaUJBQVMsRUFBQyxrQ0FBcUIsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkQsTUFBTSxPQUFPLEdBQXdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXRFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSwyQkFBMkIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0FBQ3hELENBQUMsQ0FBQTtBQVBZLFFBQUEsSUFBSSxRQU9oQiJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../../modules/coupon");
|
|
5
|
+
const validators_1 = require("../../../../../validators");
|
|
6
|
+
const utils_1 = require("../../../../../utils");
|
|
7
|
+
const POST = async (req, res) => {
|
|
8
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
9
|
+
const body = (0, utils_1.parseBody)(validators_1.EntitlementActionBody, req.body);
|
|
10
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
11
|
+
const entitlement = await service.redeemEntitlement(id, body.metadata);
|
|
12
|
+
res.json({ customer_coupon_entitlement: entitlement });
|
|
13
|
+
};
|
|
14
|
+
exports.POST = POST;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9lbnRpdGxlbWVudHMvW2lkXS9yZWRlZW0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkRBQWdFO0FBRWhFLDBEQUFpRTtBQUNqRSxnREFBaUU7QUFFMUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sRUFBRSxHQUFHLElBQUEsdUJBQWUsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUEsaUJBQVMsRUFBQyxrQ0FBcUIsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkQsTUFBTSxPQUFPLEdBQXdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFdBQVcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBRXRFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSwyQkFBMkIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0FBQ3hELENBQUMsQ0FBQTtBQVBZLFFBQUEsSUFBSSxRQU9oQiJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../../modules/coupon");
|
|
5
|
+
const entitlement_utils_1 = require("../../../../entitlement-utils");
|
|
6
|
+
const utils_1 = require("../../../../utils");
|
|
7
|
+
const GET = async (req, res) => {
|
|
8
|
+
const id = (0, utils_1.readStringParam)(req.params, "id");
|
|
9
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
10
|
+
const detail = await (0, entitlement_utils_1.retrieveCouponEntitlementDetail)(service, id);
|
|
11
|
+
const entitlement = detail.customer_coupon_entitlement;
|
|
12
|
+
detail.order = await (0, entitlement_utils_1.retrieveCouponOrderSummary)(req.scope, entitlement.order_id);
|
|
13
|
+
res.json(detail);
|
|
14
|
+
};
|
|
15
|
+
exports.GET = GET;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9lbnRpdGxlbWVudHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwREFBNkQ7QUFFN0QscUVBR3NDO0FBQ3RDLDZDQUFtRDtBQUU1QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxFQUFFLEdBQUcsSUFBQSx1QkFBZSxFQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDNUMsTUFBTSxPQUFPLEdBQXdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsbURBQStCLEVBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQywyQkFBa0MsQ0FBQTtJQUU3RCxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBQSw4Q0FBMEIsRUFDN0MsR0FBRyxDQUFDLEtBQUssRUFDVCxXQUFXLENBQUMsUUFBUSxDQUNyQixDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFaWSxRQUFBLEdBQUcsT0FZZiJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const coupon_1 = require("../../../../modules/coupon");
|
|
5
|
+
const entitlement_utils_1 = require("../../../entitlement-utils");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const filters = {};
|
|
8
|
+
if (typeof req.query.product_id === "string" && req.query.product_id) {
|
|
9
|
+
filters.product_id = req.query.product_id;
|
|
10
|
+
}
|
|
11
|
+
if (typeof req.query.status === "string" && req.query.status) {
|
|
12
|
+
filters.status = req.query.status;
|
|
13
|
+
}
|
|
14
|
+
const service = req.scope.resolve(coupon_1.COUPON_MODULE);
|
|
15
|
+
const entitlements = await (0, entitlement_utils_1.attachEntitlementSellerTargets)(service, await (0, entitlement_utils_1.listCouponEntitlements)(service, filters));
|
|
16
|
+
res.json({
|
|
17
|
+
customer_coupon_entitlements: entitlements,
|
|
18
|
+
count: entitlements.length,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.GET = GET;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9lbnRpdGxlbWVudHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdURBQTBEO0FBRTFELGtFQUdtQztBQUU1QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQTtJQUMzQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckUsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUMzQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUE7SUFDbkMsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUF3QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUE7SUFDckUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFBLGtEQUE4QixFQUN2RCxPQUFPLEVBQ1AsTUFBTSxJQUFBLDBDQUFzQixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FDL0MsQ0FBQTtJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCw0QkFBNEIsRUFBRSxZQUFZO1FBQzFDLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTTtLQUMzQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFuQlksUUFBQSxHQUFHLE9BbUJmIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../../coupon-product-routes");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.optionsForCouponProducts)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.GET = GET;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9vcHRpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBFQUF5RTtBQUVsRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsT0FBTyxJQUFBLGdEQUF3QixFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDcEQsQ0FBQyxDQUFBO0FBRlksUUFBQSxHQUFHLE9BRWYifQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = void 0;
|
|
4
|
+
const product_utils_1 = require("../../../product-utils");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
const products = await (0, product_utils_1.listProductPickerOptions)(req, {
|
|
7
|
+
q: req.query.q,
|
|
8
|
+
limit: req.query.limit,
|
|
9
|
+
});
|
|
10
|
+
res.json({
|
|
11
|
+
products,
|
|
12
|
+
count: products.length,
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
exports.GET = GET;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwREFBaUU7QUFFMUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSx3Q0FBd0IsRUFBQyxHQUFHLEVBQUU7UUFDbkQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNkLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUs7S0FDdkIsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLFFBQVE7UUFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBVlksUUFBQSxHQUFHLE9BVWYifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const coupon_product_routes_1 = require("../../coupon-product-routes");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
return (0, coupon_product_routes_1.listCouponProducts)(req, res, "admin");
|
|
7
|
+
};
|
|
8
|
+
exports.GET = GET;
|
|
9
|
+
const POST = async (req, res) => {
|
|
10
|
+
return (0, coupon_product_routes_1.createCouponProduct)(req, res, "admin");
|
|
11
|
+
};
|
|
12
|
+
exports.POST = POST;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1RUFHb0M7QUFFN0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE9BQU8sSUFBQSwwQ0FBa0IsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQzlDLENBQUMsQ0FBQTtBQUZZLFFBQUEsR0FBRyxPQUVmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sSUFBQSwyQ0FBbUIsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUZZLFFBQUEsSUFBSSxRQUVoQiJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const media_upload_1 = require("../../../media-upload");
|
|
5
|
+
const POST = (req, res) => (0, media_upload_1.uploadCouponMedia)(req, res, "admin");
|
|
6
|
+
exports.POST = POST;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvdXBvbi1wcm9kdWN0cy91cGxvYWRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHdEQUF5RDtBQUVsRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFLENBQzlELElBQUEsZ0NBQWlCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtBQUR6QixRQUFBLElBQUksUUFDcUIifQ==
|