@devx-commerce/plugin-discounts-svaraa 0.0.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +20 -0
- package/.medusa/server/src/admin/index.mjs +21 -0
- package/.medusa/server/src/api/admin/discounts/freebie-rules/[id]/route.js +75 -0
- package/.medusa/server/src/api/admin/discounts/freebie-rules/route.js +73 -0
- package/.medusa/server/src/api/admin/discounts/middlewares.js +113 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/export/route.js +41 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/route.js +20 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/[id]/route.js +50 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/bulk/[id]/add-more-codes/route.js +34 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/bulk/route.js +33 -0
- package/.medusa/server/src/api/admin/discounts/price-rules/route.js +47 -0
- package/.medusa/server/src/api/admin/discounts/validators.js +649 -0
- package/.medusa/server/src/api/admin/plugin/route.js +7 -0
- package/.medusa/server/src/api/middlewares.js +14 -0
- package/.medusa/server/src/api/store/discounts/apply/route.js +24 -0
- package/.medusa/server/src/api/store/discounts/apply-freebie/route.js +20 -0
- package/.medusa/server/src/api/store/discounts/auto-apply/route.js +125 -0
- package/.medusa/server/src/api/store/discounts/cart-eligible-coupons/[cart_id]/route.js +19 -0
- package/.medusa/server/src/api/store/discounts/middlewares.js +49 -0
- package/.medusa/server/src/api/store/discounts/offers-on-product/[variant_id]/route.js +19 -0
- package/.medusa/server/src/api/store/discounts/price-rules/route.js +20 -0
- package/.medusa/server/src/api/store/discounts/remove/route.js +21 -0
- package/.medusa/server/src/api/store/plugin/route.js +7 -0
- package/.medusa/server/src/index.js +18 -0
- package/.medusa/server/src/jobs/price-rule-status-updates.js +80 -0
- package/.medusa/server/src/lib/api-response.js +42 -0
- package/.medusa/server/src/lib/utils.js +10 -0
- package/.medusa/server/src/links/mtm-freebie-rule-with-customers.js +16 -0
- package/.medusa/server/src/links/mtm-freebie-rule-with-products-categories.js +16 -0
- package/.medusa/server/src/links/mtm-freebie-rule-with-products-variants.js +18 -0
- package/.medusa/server/src/links/mtm-price-rule-with-customers.js +16 -0
- package/.medusa/server/src/links/mtm-price-rule-with-products-categories.js +16 -0
- package/.medusa/server/src/links/mtm-price-rule-with-products-variants.js +16 -0
- package/.medusa/server/src/modules/discounts/index.js +13 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250526174351.js +21 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250527074936.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250527104919.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250527113947.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250529123956.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250602052234.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250602052239.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250602165037.js +16 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250602194000.js +130 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250603053221.js +16 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250604162727.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250604162741.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250604175305.js +15 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250605161922.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250605162116.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250605164908.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250610063653.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250611105345.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250611105356.js +14 -0
- package/.medusa/server/src/modules/discounts/migrations/Migration20250617113007.js +14 -0
- package/.medusa/server/src/modules/discounts/models/discount-code.js +20 -0
- package/.medusa/server/src/modules/discounts/models/freebie-rule.js +27 -0
- package/.medusa/server/src/modules/discounts/models/price-rule.js +53 -0
- package/.medusa/server/src/modules/discounts/service.js +98 -0
- package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +28 -0
- package/.medusa/server/src/workflows/discount/apply-coupon/index.js +41 -0
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step-backup.js +245 -0
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +244 -0
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +28 -0
- package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +212 -0
- package/.medusa/server/src/workflows/discount/apply-freebie/index.js +31 -0
- package/.medusa/server/src/workflows/discount/apply-freebie/steps/add-freebie-items-to-cart.js +212 -0
- package/.medusa/server/src/workflows/discount/apply-freebie/steps/remove-freebie-from-cart.js +16 -0
- package/.medusa/server/src/workflows/discount/auto-apply-coupon/index.js +10 -0
- package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +81 -0
- package/.medusa/server/src/workflows/discount/calculate-coupon-discount/index.js +74 -0
- package/.medusa/server/src/workflows/discount/create-bulk-discount/index.js +46 -0
- package/.medusa/server/src/workflows/discount/create-bulk-discount/steps/add-bulk-codes-to-rule.js +84 -0
- package/.medusa/server/src/workflows/discount/create-discount-code/index.js +10 -0
- package/.medusa/server/src/workflows/discount/create-discount-code/steps/create-discount-code-step.js +20 -0
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/index.js +56 -0
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/create-discount-price-rule-step.js +58 -0
- package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/validate-customer-exists.js +21 -0
- package/.medusa/server/src/workflows/discount/create-freebie-rule/index.js +44 -0
- package/.medusa/server/src/workflows/discount/create-freebie-rule/steps/create-freebie-rule-step.js +64 -0
- package/.medusa/server/src/workflows/discount/export-codes/index.js +14 -0
- package/.medusa/server/src/workflows/discount/export-codes/steps/export-codes-step.js +116 -0
- package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/index.js +15 -0
- package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +39 -0
- package/.medusa/server/src/workflows/discount/get-product-offers/index.js +25 -0
- package/.medusa/server/src/workflows/discount/get-product-offers/step/calculate-product-offers.js +53 -0
- package/.medusa/server/src/workflows/discount/index.js +28 -0
- package/.medusa/server/src/workflows/discount/remove-coupon/index.js +18 -0
- package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +32 -0
- package/.medusa/server/src/workflows/discount/steps/validate-cart-exists.js +22 -0
- package/.medusa/server/src/workflows/discount/steps/validate-discount-code-exists.js +20 -0
- package/.medusa/server/src/workflows/discount/steps/validate-freebie-code-exists.js +16 -0
- package/.medusa/server/src/workflows/discount/steps/validate-same-prefix-rule-exists.js +20 -0
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +42 -0
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/update-discount-price-rule-step.js +160 -0
- package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/validate-discount-price-rule-update-step.js +175 -0
- package/.medusa/server/src/workflows/discount/update-freebie-price-rule/index.js +44 -0
- package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/update-freebie-price-rule-step.js +201 -0
- package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/validate-freebie-rule-update-step.js +44 -0
- package/.medusa/server/src/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/product/steps/validate-product-category-exists.js +26 -0
- package/.medusa/server/src/workflows/product/steps/validate-product-exists.js +28 -0
- package/.medusa/server/src/workflows/product/steps/validate-product-variant-exists.js +26 -0
- package/.medusa/server/src/workflows/steps/throw-error-step.js +9 -0
- package/README.md +64 -0
- package/package.json +87 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const widgetModule = { widgets: [] };
|
|
3
|
+
const routeModule = {
|
|
4
|
+
routes: []
|
|
5
|
+
};
|
|
6
|
+
const menuItemModule = {
|
|
7
|
+
menuItems: []
|
|
8
|
+
};
|
|
9
|
+
const formModule = { customFields: {} };
|
|
10
|
+
const displayModule = {
|
|
11
|
+
displays: {}
|
|
12
|
+
};
|
|
13
|
+
const plugin = {
|
|
14
|
+
widgetModule,
|
|
15
|
+
routeModule,
|
|
16
|
+
menuItemModule,
|
|
17
|
+
formModule,
|
|
18
|
+
displayModule
|
|
19
|
+
};
|
|
20
|
+
module.exports = plugin;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const widgetModule = { widgets: [] };
|
|
2
|
+
const routeModule = {
|
|
3
|
+
routes: []
|
|
4
|
+
};
|
|
5
|
+
const menuItemModule = {
|
|
6
|
+
menuItems: []
|
|
7
|
+
};
|
|
8
|
+
const formModule = { customFields: {} };
|
|
9
|
+
const displayModule = {
|
|
10
|
+
displays: {}
|
|
11
|
+
};
|
|
12
|
+
const plugin = {
|
|
13
|
+
widgetModule,
|
|
14
|
+
routeModule,
|
|
15
|
+
menuItemModule,
|
|
16
|
+
formModule,
|
|
17
|
+
displayModule
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
plugin as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
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.PUT = PUT;
|
|
7
|
+
exports.GET = GET;
|
|
8
|
+
const api_response_1 = require("../../../../../lib/api-response");
|
|
9
|
+
const mtm_freebie_rule_with_products_variants_1 = __importDefault(require("../../../../../links/mtm-freebie-rule-with-products-variants"));
|
|
10
|
+
const update_freebie_price_rule_1 = require("../../../../../workflows/discount/update-freebie-price-rule");
|
|
11
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
12
|
+
async function PUT(req, res) {
|
|
13
|
+
try {
|
|
14
|
+
const id = req.params.id;
|
|
15
|
+
const { result } = await (0, update_freebie_price_rule_1.updateFreebiePriceRuleWorkflow)(req.scope).run({
|
|
16
|
+
input: { id, ...req.validatedBody },
|
|
17
|
+
});
|
|
18
|
+
if (!result) {
|
|
19
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to update freebie price rule", 400));
|
|
20
|
+
}
|
|
21
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
22
|
+
eventBus.emit({
|
|
23
|
+
name: "audit.logs",
|
|
24
|
+
data: {
|
|
25
|
+
relation_id: result[0].id,
|
|
26
|
+
message: "Freebie rule updated",
|
|
27
|
+
admin_id: req.auth_context.actor_id
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function GET(req, res) {
|
|
37
|
+
try {
|
|
38
|
+
const query = req.scope.resolve("query");
|
|
39
|
+
const { data: [freebieRule], } = await query.graph({
|
|
40
|
+
entity: "freebie_rule",
|
|
41
|
+
...req.queryConfig,
|
|
42
|
+
fields: [
|
|
43
|
+
...req.queryConfig.fields,
|
|
44
|
+
"product_variants.*",
|
|
45
|
+
"product_categories.*",
|
|
46
|
+
],
|
|
47
|
+
filters: { id: req.params.id },
|
|
48
|
+
});
|
|
49
|
+
if (!freebieRule) {
|
|
50
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Freebie rule not found", 404));
|
|
51
|
+
}
|
|
52
|
+
const variants = freebieRule.product_variants;
|
|
53
|
+
const { data: productVariantLinks } = await query.graph({
|
|
54
|
+
entity: mtm_freebie_rule_with_products_variants_1.default.entryPoint,
|
|
55
|
+
fields: ["*"],
|
|
56
|
+
filters: { freebie_rule_id: freebieRule.id },
|
|
57
|
+
});
|
|
58
|
+
delete freebieRule.product_variants;
|
|
59
|
+
const transformedFreebieRule = {
|
|
60
|
+
...freebieRule,
|
|
61
|
+
applicable_product_variants: variants?.filter((variant) => {
|
|
62
|
+
return productVariantLinks?.some((link) => link.product_variant_id === variant.id && !link.is_freebie);
|
|
63
|
+
}) || [],
|
|
64
|
+
freebie_product_variants: variants?.filter((variant) => {
|
|
65
|
+
return productVariantLinks?.some((link) => link.product_variant_id === variant.id && link.is_freebie);
|
|
66
|
+
}) || [],
|
|
67
|
+
};
|
|
68
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(transformedFreebieRule));
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const message = error instanceof Error ? error.message : "An unexpected error occurred";
|
|
72
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9mcmVlYmllLXJ1bGVzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFlQSxrQkFpQ0M7QUFFRCxrQkEwREM7QUF2R0Qsa0VBSXlDO0FBQ3pDLDJJQUF5RztBQUN6RywyR0FBNkc7QUFFN0cscURBQW9EO0FBRTdDLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQThELEVBQzlELEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMERBQThCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNyRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO1NBQ3BDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyxxQ0FBcUMsRUFBRSxHQUFHLENBQUMsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEQsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7YUFDcEM7U0FDRixDQUFDLENBQUE7UUFHRixPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxvQ0FBcUIsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7QUFDSCxDQUFDO0FBRU0sS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBK0IsRUFDL0IsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUNwQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUsY0FBYztZQUN0QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtnQkFDekIsb0JBQW9CO2dCQUNwQixzQkFBc0I7YUFDdkI7WUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FDbkQsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsTUFBTSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN0RCxNQUFNLEVBQUUsaURBQTZCLENBQUMsVUFBVTtZQUNoRCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDYixPQUFPLEVBQUUsRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtTQUM3QyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztRQUVwQyxNQUFNLHNCQUFzQixHQUFHO1lBQzdCLEdBQUcsV0FBVztZQUNkLDJCQUEyQixFQUN6QixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sbUJBQW1CLEVBQUUsSUFBSSxDQUM5QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixLQUFLLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUNyRSxDQUFDO1lBQ0osQ0FBQyxDQUFDLElBQUksRUFBRTtZQUNWLHdCQUF3QixFQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzNCLE9BQU8sbUJBQW1CLEVBQUUsSUFBSSxDQUM5QixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixLQUFLLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FDcEUsQ0FBQztZQUNKLENBQUMsQ0FBQyxJQUFJLEVBQUU7U0FDWCxDQUFDO1FBRUYsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxPQUFPLEdBQ1gsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUM7UUFDMUUsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
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 = POST;
|
|
7
|
+
exports.GET = GET;
|
|
8
|
+
const api_response_1 = require("../../../../lib/api-response");
|
|
9
|
+
const create_freebie_rule_1 = require("../../../../workflows/discount/create-freebie-rule");
|
|
10
|
+
const mtm_freebie_rule_with_products_variants_1 = __importDefault(require("../../../../links/mtm-freebie-rule-with-products-variants"));
|
|
11
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
12
|
+
async function POST(req, res) {
|
|
13
|
+
try {
|
|
14
|
+
const { result } = await (0, create_freebie_rule_1.createFreebieRuleWorkflow)(req.scope).run({
|
|
15
|
+
input: req.validatedBody,
|
|
16
|
+
});
|
|
17
|
+
if (!result) {
|
|
18
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
|
|
19
|
+
}
|
|
20
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
21
|
+
eventBus.emit({
|
|
22
|
+
name: "audit.logs",
|
|
23
|
+
data: {
|
|
24
|
+
relation_id: result[0].id,
|
|
25
|
+
message: "Freebie rule created",
|
|
26
|
+
admin_id: req.auth_context.actor_id
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function GET(req, res) {
|
|
36
|
+
try {
|
|
37
|
+
const query = req.scope.resolve("query");
|
|
38
|
+
const { data: freebieRules, metadata } = await query.graph({
|
|
39
|
+
entity: "freebie_rule",
|
|
40
|
+
...req.queryConfig,
|
|
41
|
+
fields: [
|
|
42
|
+
...req.queryConfig.fields,
|
|
43
|
+
"product_variants.*",
|
|
44
|
+
"product_categories.*",
|
|
45
|
+
],
|
|
46
|
+
filters: req.filterableFields,
|
|
47
|
+
});
|
|
48
|
+
const transformedFreebieRules = await Promise.all(freebieRules.map(async (freebieRule) => {
|
|
49
|
+
const variants = freebieRule.product_variants;
|
|
50
|
+
const { data: productVariantLinks } = await query.graph({
|
|
51
|
+
entity: mtm_freebie_rule_with_products_variants_1.default.entryPoint,
|
|
52
|
+
fields: ["*"],
|
|
53
|
+
filters: { freebie_rule_id: freebieRule.id },
|
|
54
|
+
});
|
|
55
|
+
delete freebieRule.product_variants;
|
|
56
|
+
return {
|
|
57
|
+
...freebieRule,
|
|
58
|
+
applicable_product_variants: variants?.filter((variant) => {
|
|
59
|
+
return productVariantLinks?.some((link) => link.product_variant_id === variant.id && !link.is_freebie);
|
|
60
|
+
}) || [],
|
|
61
|
+
freebie_product_variants: variants?.filter((variant) => {
|
|
62
|
+
return productVariantLinks?.some((link) => link.product_variant_id === variant.id && link.is_freebie);
|
|
63
|
+
}) || [],
|
|
64
|
+
};
|
|
65
|
+
}));
|
|
66
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ data: transformedFreebieRules, metadata }));
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
const message = error instanceof Error ? error.message : "An unexpected error occurred";
|
|
70
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9mcmVlYmllLXJ1bGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBa0JBLG9CQWdDQztBQUVELGtCQTBEQztBQXpHRCwrREFJc0M7QUFDdEMsNEZBQStGO0FBSy9GLHdJQUFzRztBQUN0RyxxREFBb0Q7QUFFN0MsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBOEQsRUFDOUQsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSwrQ0FBeUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hFLEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYTtTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsa0NBQW1CLEVBQUMsc0NBQXNDLEVBQUUsR0FBRyxDQUFDLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDWixJQUFJLEVBQUUsWUFBWTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixPQUFPLEVBQUUsc0JBQXNCO2dCQUMvQixRQUFRLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFBO1FBR0YsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJ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
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adminDiscountRoutesMiddlewares = void 0;
|
|
4
|
+
const http_1 = require("@medusajs/framework/http");
|
|
5
|
+
const validators_1 = require("./validators");
|
|
6
|
+
exports.adminDiscountRoutesMiddlewares = [
|
|
7
|
+
{
|
|
8
|
+
matcher: "/admin/discounts/price-rules",
|
|
9
|
+
method: "POST",
|
|
10
|
+
middlewares: [
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
(0, http_1.validateAndTransformBody)(validators_1.CreateDiscountDetailsInputValidator),
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
matcher: "/admin/discounts/price-rules",
|
|
17
|
+
methods: ["GET"],
|
|
18
|
+
middlewares: [
|
|
19
|
+
(0, http_1.validateAndTransformQuery)(validators_1.ListDiscountPriceRulesParams, {
|
|
20
|
+
defaults: validators_1.defaultDiscountPriceRuleFields,
|
|
21
|
+
defaultLimit: 10,
|
|
22
|
+
isList: true,
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
matcher: "/admin/discounts/price-rules/:id",
|
|
28
|
+
method: "PUT",
|
|
29
|
+
middlewares: [
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
(0, http_1.validateAndTransformBody)(validators_1.UpdateDiscountPriceRuleInputValidator),
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
matcher: "/admin/discounts/price-rules/:id",
|
|
36
|
+
method: "GET",
|
|
37
|
+
middlewares: [
|
|
38
|
+
(0, http_1.validateAndTransformQuery)(validators_1.AdminGetDiscountPriceRulesParams, {
|
|
39
|
+
defaults: validators_1.defaultDiscountPriceRuleFields,
|
|
40
|
+
}),
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
matcher: "/admin/discounts/price-rules/:id/codes",
|
|
45
|
+
methods: ["GET"],
|
|
46
|
+
middlewares: [
|
|
47
|
+
(0, http_1.validateAndTransformQuery)(validators_1.ListDiscountCodeParams, {
|
|
48
|
+
defaults: validators_1.defaultDiscountCodeFields,
|
|
49
|
+
defaultLimit: 10,
|
|
50
|
+
isList: true,
|
|
51
|
+
}),
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
///////////////////// BULK ////////////////////
|
|
55
|
+
{
|
|
56
|
+
matcher: "/admin/discounts/price-rules/bulk",
|
|
57
|
+
method: "POST",
|
|
58
|
+
middlewares: [
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
(0, http_1.validateAndTransformBody)(validators_1.CreateBulkDiscountDetailsInputValidator),
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
matcher: "/admin/discounts/price-rules/bulk/:id/add-more-codes",
|
|
65
|
+
method: "POST",
|
|
66
|
+
middlewares: [
|
|
67
|
+
(0, http_1.validateAndTransformBody)(validators_1.AddMoreCodesToDiscountInputValidator),
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
///////////////////// EXPORT ////////////////////
|
|
71
|
+
{
|
|
72
|
+
matcher: "/admin/discounts/price-rules/:id/codes/export",
|
|
73
|
+
method: "GET",
|
|
74
|
+
},
|
|
75
|
+
///////////////////// FREEBIE ////////////////////
|
|
76
|
+
{
|
|
77
|
+
matcher: "/admin/discounts/freebie-rules",
|
|
78
|
+
method: "POST",
|
|
79
|
+
middlewares: [
|
|
80
|
+
// @ts-ignore
|
|
81
|
+
(0, http_1.validateAndTransformBody)(validators_1.CreateFreebieDetailsInputValidator),
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
matcher: "/admin/discounts/freebie-rules/:id",
|
|
86
|
+
method: "PUT",
|
|
87
|
+
middlewares: [
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
(0, http_1.validateAndTransformBody)(validators_1.UpdateFreebieDetailsInputValidator),
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
matcher: "/admin/discounts/freebie-rules",
|
|
94
|
+
methods: ["GET"],
|
|
95
|
+
middlewares: [
|
|
96
|
+
(0, http_1.validateAndTransformQuery)(validators_1.ListFreebieRulesParams, {
|
|
97
|
+
defaults: validators_1.defaultFreebieRuleFields,
|
|
98
|
+
defaultLimit: 10,
|
|
99
|
+
isList: true,
|
|
100
|
+
}),
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
matcher: "/admin/discounts/freebie-rules/:id",
|
|
105
|
+
method: "GET",
|
|
106
|
+
middlewares: [
|
|
107
|
+
(0, http_1.validateAndTransformQuery)(validators_1.AdminGetFreebieRulesParams, {
|
|
108
|
+
defaults: validators_1.defaultFreebieRuleFields,
|
|
109
|
+
}),
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJa0M7QUFFbEMsNkNBZXNCO0FBRVQsUUFBQSw4QkFBOEIsR0FBc0I7SUFDL0Q7UUFDRSxPQUFPLEVBQUUsOEJBQThCO1FBQ3ZDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsV0FBVyxFQUFFO1lBQ1gsYUFBYTtZQUNiLElBQUEsK0JBQXdCLEVBQUMsZ0RBQW1DLENBQUM7U0FDOUQ7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDaEIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyx5Q0FBNEIsRUFBRTtnQkFDdEQsUUFBUSxFQUFFLDJDQUE4QjtnQkFDeEMsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNIO0tBQ0Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxrQ0FBa0M7UUFDM0MsTUFBTSxFQUFFLEtBQUs7UUFDYixXQUFXLEVBQUU7WUFDWCxhQUFhO1lBQ2IsSUFBQSwrQkFBd0IsRUFBQyxrREFBcUMsQ0FBQztTQUNoRTtLQUNGO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsa0NBQWtDO1FBQzNDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyw2Q0FBZ0MsRUFBRTtnQkFDMUQsUUFBUSxFQUFFLDJDQUE4QjthQUN6QyxDQUFDO1NBQ0g7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLHdDQUF3QztRQUNqRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDaEIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyxtQ0FBc0IsRUFBRTtnQkFDaEQsUUFBUSxFQUFFLHNDQUF5QjtnQkFDbkMsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNIO0tBQ0Y7SUFFRCwrQ0FBK0M7SUFDL0M7UUFDRSxPQUFPLEVBQUUsbUNBQW1DO1FBQzVDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsV0FBVyxFQUFFO1lBQ1gsYUFBYTtZQUNiLElBQUEsK0JBQXdCLEVBQUMsb0RBQXVDLENBQUM7U0FDbEU7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLHNEQUFzRDtRQUMvRCxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRTtZQUNYLElBQUEsK0JBQXdCLEVBQUMsaURBQW9DLENBQUM7U0FDL0Q7S0FDRjtJQUVELGlEQUFpRDtJQUNqRDtRQUNFLE9BQU8sRUFBRSwrQ0FBK0M7UUFDeEQsTUFBTSxFQUFFLEtBQUs7S0FDZDtJQUVELGtEQUFrRDtJQUNsRDtRQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7UUFDekMsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUU7WUFDWCxhQUFhO1lBQ2IsSUFBQSwrQkFBd0IsRUFBQywrQ0FBa0MsQ0FBQztTQUM3RDtLQUNGO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsb0NBQW9DO1FBQzdDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFO1lBQ1gsYUFBYTtZQUNiLElBQUEsK0JBQXdCLEVBQUMsK0NBQWtDLENBQUM7U0FDN0Q7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLGdDQUFnQztRQUN6QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDaEIsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyxtQ0FBc0IsRUFBRTtnQkFDaEQsUUFBUSxFQUFFLHFDQUF3QjtnQkFDbEMsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNIO0tBQ0Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxvQ0FBb0M7UUFDN0MsTUFBTSxFQUFFLEtBQUs7UUFDYixXQUFXLEVBQUU7WUFDWCxJQUFBLGdDQUF5QixFQUFDLHVDQUEwQixFQUFFO2dCQUNwRCxRQUFRLEVBQUUscUNBQXdCO2FBQ25DLENBQUM7U0FDSDtLQUNGO0NBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const api_response_1 = require("../../../../../../../lib/api-response");
|
|
6
|
+
const export_codes_1 = require("../../../../../../../workflows/discount/export-codes");
|
|
7
|
+
async function GET(req, res) {
|
|
8
|
+
try {
|
|
9
|
+
const query = req.scope.resolve("query");
|
|
10
|
+
const { data: [user], } = await query.graph({
|
|
11
|
+
entity: "users",
|
|
12
|
+
filters: { id: req.auth_context.actor_id },
|
|
13
|
+
fields: ["email"],
|
|
14
|
+
});
|
|
15
|
+
await (0, export_codes_1.exportCodesWorkflow)(req.scope).run({
|
|
16
|
+
input: {
|
|
17
|
+
price_rule_id: req.params.id,
|
|
18
|
+
email: user?.email,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
|
|
22
|
+
message: "Export started you will be notified once it's done over the mail: " +
|
|
23
|
+
user.email,
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
const message = error instanceof Error ? error.message : "An unexpected error occurred";
|
|
28
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
29
|
+
await eventBus.emit({
|
|
30
|
+
data: {
|
|
31
|
+
price_rule_id: req.params.id,
|
|
32
|
+
type: "BULK_EXPORT",
|
|
33
|
+
status: "ERROR",
|
|
34
|
+
error_message: message,
|
|
35
|
+
},
|
|
36
|
+
name: "bulk_discount",
|
|
37
|
+
});
|
|
38
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9baWRdL2NvZGVzL2V4cG9ydC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLGtCQWdEQztBQXpERCxxREFBb0Q7QUFFcEQsd0VBSStDO0FBQy9DLHVGQUEyRjtBQUVwRixLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQ2IsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDcEIsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDMUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ2xCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBQSxrQ0FBbUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLEtBQUssRUFBRTtnQkFDTCxhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1QixLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7YUFDbkI7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsb0NBQXFCLEVBQUM7WUFDcEIsT0FBTyxFQUNMLG9FQUFvRTtnQkFDcEUsSUFBSSxDQUFDLEtBQUs7U0FDYixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxPQUFPLEdBQ1gsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUM7UUFFMUUsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQztZQUNsQixJQUFJLEVBQUU7Z0JBQ0osYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLE1BQU0sRUFBRSxPQUFPO2dCQUNmLGFBQWEsRUFBRSxPQUFPO2FBQ3ZCO1lBQ0QsSUFBSSxFQUFFLGVBQWU7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const api_response_1 = require("../../../../../../lib/api-response");
|
|
5
|
+
async function GET(req, res) {
|
|
6
|
+
try {
|
|
7
|
+
const query = req.scope.resolve("query");
|
|
8
|
+
const { data, metadata } = await query.graph({
|
|
9
|
+
entity: "discount_code",
|
|
10
|
+
...req.queryConfig,
|
|
11
|
+
filters: { ...req.filterableFields, price_rule_id: req.params.id },
|
|
12
|
+
});
|
|
13
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ data, metadata }));
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
const message = error instanceof Error ? error.message : "An unexpected error occurred";
|
|
17
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9baWRdL2NvZGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0JBa0JDO0FBekJELHFFQUk0QztBQUdyQyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUEyRCxFQUMzRCxHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzQyxNQUFNLEVBQUUsZUFBZTtZQUN2QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRTtTQUNuRSxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxvQ0FBcUIsRUFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE9BQU8sR0FDWCxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQztRQUMxRSxPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxrQ0FBbUIsRUFBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.PUT = PUT;
|
|
5
|
+
const api_response_1 = require("../../../../../lib/api-response");
|
|
6
|
+
const update_discount_price_rule_1 = require("../../../../../workflows/discount/update-discount-price-rule");
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
async function GET(req, res) {
|
|
9
|
+
try {
|
|
10
|
+
const id = req.params.id;
|
|
11
|
+
const query = req.scope.resolve("query");
|
|
12
|
+
const { data: [discountPriceRule], } = await query.graph({
|
|
13
|
+
entity: "discount_price_rule",
|
|
14
|
+
...req.queryConfig,
|
|
15
|
+
filters: { id },
|
|
16
|
+
});
|
|
17
|
+
if (!discountPriceRule) {
|
|
18
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Discount price rule not found", 404));
|
|
19
|
+
}
|
|
20
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(discountPriceRule));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async function PUT(req, res) {
|
|
27
|
+
try {
|
|
28
|
+
const id = req.params.id;
|
|
29
|
+
const { result } = await (0, update_discount_price_rule_1.updateDiscountPriceRuleWorkflow)(req.scope).run({
|
|
30
|
+
input: { id, ...req.validatedBody },
|
|
31
|
+
});
|
|
32
|
+
if (!result) {
|
|
33
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to update discount price rule", 400));
|
|
34
|
+
}
|
|
35
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
36
|
+
eventBus.emit({
|
|
37
|
+
name: "audit.logs",
|
|
38
|
+
data: {
|
|
39
|
+
relation_id: result[0].id,
|
|
40
|
+
message: "Discount price rule updated",
|
|
41
|
+
admin_id: req.auth_context.actor_id
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esa0JBd0JDO0FBRUQsa0JBZ0NDO0FBbkVELGtFQUl5QztBQUN6Qyw2R0FBK0c7QUFFL0cscURBQW9EO0FBRTdDLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQStCLEVBQy9CLEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFDSixJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUMxQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNwQixNQUFNLEVBQUUscUJBQXFCO1lBQzdCLEdBQUcsR0FBRyxDQUFDLFdBQVc7WUFDbEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUssQ0FBQyxpQkFBaUIsRUFBRyxDQUFDO1lBQ3pCLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLCtCQUErQixFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLG9DQUFxQixFQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQWlFLEVBQ2pFLEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsNERBQStCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN0RSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO1NBQ3BDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyxzQ0FBc0MsRUFBRSxHQUFHLENBQUMsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEQsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSw2QkFBNkI7Z0JBQ3RDLFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7YUFDcEM7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxvQ0FBcUIsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsa0NBQW1CLEVBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const api_response_1 = require("../../../../../../../lib/api-response");
|
|
6
|
+
const add_more_code_in_price_rule_1 = require("../../../../../../../workflows/discount/add-more-code-in-price-rule");
|
|
7
|
+
async function POST(req, res) {
|
|
8
|
+
try {
|
|
9
|
+
const { result } = await (0, add_more_code_in_price_rule_1.addMoreCodesToPriceRuleWorkflow)(req.scope).run({
|
|
10
|
+
input: {
|
|
11
|
+
...req.validatedBody,
|
|
12
|
+
price_rule_id: req.params.id,
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
if (!result) {
|
|
16
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
|
|
17
|
+
}
|
|
18
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
22
|
+
await eventBus.emit({
|
|
23
|
+
data: {
|
|
24
|
+
price_rule_id: req.params.id,
|
|
25
|
+
type: "MORE_CODE_ADDITION",
|
|
26
|
+
status: "ERROR",
|
|
27
|
+
error_message: error.message || "Failed to add more codes to discount price rule",
|
|
28
|
+
},
|
|
29
|
+
name: "bulk_discount",
|
|
30
|
+
});
|
|
31
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9idWxrL1tpZF0vYWRkLW1vcmUtY29kZXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxvQkFvQ0M7QUE5Q0QscURBQW9EO0FBRXBELHdFQUkrQztBQUMvQyxxSEFBc0g7QUFHL0csS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBZ0UsRUFDaEUsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSw2REFBK0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3RFLEtBQUssRUFBRTtnQkFDTCxHQUFHLEdBQUcsQ0FBQyxhQUFhO2dCQUNwQixhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFBLDhCQUFlLEVBQ3BCLEdBQUcsRUFDSCxJQUFBLGtDQUFtQixFQUFDLHNDQUFzQyxFQUFFLEdBQUcsQ0FBQyxDQUNqRSxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLG9DQUFxQixFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEQsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2xCLElBQUksRUFBRTtnQkFDSixhQUFhLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1QixJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixNQUFNLEVBQUUsT0FBTztnQkFDZixhQUFhLEVBQ1gsS0FBSyxDQUFDLE9BQU8sSUFBSSxpREFBaUQ7YUFDckU7WUFDRCxJQUFJLEVBQUUsZUFBZTtTQUN0QixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxrQ0FBbUIsRUFBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const api_response_1 = require("../../../../../lib/api-response");
|
|
6
|
+
const create_bulk_discount_1 = require("../../../../../workflows/discount/create-bulk-discount");
|
|
7
|
+
async function POST(req, res) {
|
|
8
|
+
let priceRuleId;
|
|
9
|
+
try {
|
|
10
|
+
const { result } = await (0, create_bulk_discount_1.createBulkDiscountWorkflow)(req.scope).run({
|
|
11
|
+
input: req.validatedBody,
|
|
12
|
+
});
|
|
13
|
+
if (!result) {
|
|
14
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
|
|
15
|
+
}
|
|
16
|
+
priceRuleId = result.id;
|
|
17
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
21
|
+
await eventBus.emit({
|
|
22
|
+
data: {
|
|
23
|
+
price_rule_id: priceRuleId || "unknown",
|
|
24
|
+
type: "BULK_CODE_CREATION",
|
|
25
|
+
status: "ERROR",
|
|
26
|
+
error_message: error.message || "Failed to create discount price rule",
|
|
27
|
+
},
|
|
28
|
+
name: "bulk_discount",
|
|
29
|
+
});
|
|
30
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9idWxrL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esb0JBb0NDO0FBOUNELHFEQUFvRDtBQUVwRCxrRUFJeUM7QUFDekMsaUdBQW9HO0FBRzdGLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQW1FLEVBQ25FLEdBQW1CO0lBRW5CLElBQUksV0FBK0IsQ0FBQztJQUVwQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGlEQUEwQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDakUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhO1NBQ3pCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyxzQ0FBc0MsRUFBRSxHQUFHLENBQUMsQ0FDakUsQ0FBQztRQUNKLENBQUM7UUFFRCxXQUFXLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUV4QixPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxvQ0FBcUIsRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQztZQUNsQixJQUFJLEVBQUU7Z0JBQ0osYUFBYSxFQUFFLFdBQVcsSUFBSSxTQUFTO2dCQUN2QyxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixNQUFNLEVBQUUsT0FBTztnQkFDZixhQUFhLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxzQ0FBc0M7YUFDdkU7WUFDRCxJQUFJLEVBQUUsZUFBZTtTQUN0QixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUEsOEJBQWUsRUFBQyxHQUFHLEVBQUUsSUFBQSxrQ0FBbUIsRUFBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
exports.GET = GET;
|
|
5
|
+
const api_response_1 = require("../../../../lib/api-response");
|
|
6
|
+
const create_discount_price_rule_1 = require("../../../../workflows/discount/create-discount-price-rule");
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
async function POST(req, res) {
|
|
9
|
+
try {
|
|
10
|
+
const { result } = await (0, create_discount_price_rule_1.createDiscountPriceRuleWorkflow)(req.scope).run({
|
|
11
|
+
input: req.validatedBody,
|
|
12
|
+
});
|
|
13
|
+
if (!result) {
|
|
14
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Failed to create discount price rule", 400));
|
|
15
|
+
}
|
|
16
|
+
const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
|
|
17
|
+
eventBus.emit({
|
|
18
|
+
name: "audit.logs",
|
|
19
|
+
data: {
|
|
20
|
+
relation_id: result[0].id,
|
|
21
|
+
message: "Discount price rule created",
|
|
22
|
+
admin_id: req.auth_context.actor_id
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result));
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
console.log("::: error :::", error);
|
|
29
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error.message, 500));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function GET(req, res) {
|
|
33
|
+
try {
|
|
34
|
+
const query = req.scope.resolve("query");
|
|
35
|
+
const response = await query.graph({
|
|
36
|
+
entity: "discount_price_rule",
|
|
37
|
+
...req.queryConfig,
|
|
38
|
+
filters: req.filterableFields,
|
|
39
|
+
});
|
|
40
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(response));
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
const message = error instanceof Error ? error.message : "An unexpected error occurred";
|
|
44
|
+
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(message, 500));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9wcmljZS1ydWxlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxvQkFpQ0M7QUFFRCxrQkFrQkM7QUFqRUQsK0RBSXNDO0FBQ3RDLDBHQUE0RztBQUs1RyxxREFBb0Q7QUFFN0MsS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBK0QsRUFDL0QsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSw0REFBK0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3RFLEtBQUssRUFBRSxHQUFHLENBQUMsYUFBYTtTQUN6QixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsa0NBQW1CLEVBQUMsc0NBQXNDLEVBQUUsR0FBRyxDQUFDLENBQ2pFLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDWixJQUFJLEVBQUUsWUFBWTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxRQUFRLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3BDO1NBQ0YsQ0FBQyxDQUFBO1FBR0YsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQWlFLEVBQ2pFLEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqQyxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLEdBQUcsR0FBRyxDQUFDLFdBQVc7WUFDbEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxnQkFBZ0I7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sT0FBTyxHQUNYLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1FBQzFFLE9BQU8sSUFBQSw4QkFBZSxFQUFDLEdBQUcsRUFBRSxJQUFBLGtDQUFtQixFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7QUFDSCxDQUFDIn0=
|