@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.
Files changed (105) hide show
  1. package/.medusa/server/src/admin/index.js +20 -0
  2. package/.medusa/server/src/admin/index.mjs +21 -0
  3. package/.medusa/server/src/api/admin/discounts/freebie-rules/[id]/route.js +75 -0
  4. package/.medusa/server/src/api/admin/discounts/freebie-rules/route.js +73 -0
  5. package/.medusa/server/src/api/admin/discounts/middlewares.js +113 -0
  6. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/export/route.js +41 -0
  7. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/codes/route.js +20 -0
  8. package/.medusa/server/src/api/admin/discounts/price-rules/[id]/route.js +50 -0
  9. package/.medusa/server/src/api/admin/discounts/price-rules/bulk/[id]/add-more-codes/route.js +34 -0
  10. package/.medusa/server/src/api/admin/discounts/price-rules/bulk/route.js +33 -0
  11. package/.medusa/server/src/api/admin/discounts/price-rules/route.js +47 -0
  12. package/.medusa/server/src/api/admin/discounts/validators.js +649 -0
  13. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  14. package/.medusa/server/src/api/middlewares.js +14 -0
  15. package/.medusa/server/src/api/store/discounts/apply/route.js +24 -0
  16. package/.medusa/server/src/api/store/discounts/apply-freebie/route.js +20 -0
  17. package/.medusa/server/src/api/store/discounts/auto-apply/route.js +125 -0
  18. package/.medusa/server/src/api/store/discounts/cart-eligible-coupons/[cart_id]/route.js +19 -0
  19. package/.medusa/server/src/api/store/discounts/middlewares.js +49 -0
  20. package/.medusa/server/src/api/store/discounts/offers-on-product/[variant_id]/route.js +19 -0
  21. package/.medusa/server/src/api/store/discounts/price-rules/route.js +20 -0
  22. package/.medusa/server/src/api/store/discounts/remove/route.js +21 -0
  23. package/.medusa/server/src/api/store/plugin/route.js +7 -0
  24. package/.medusa/server/src/index.js +18 -0
  25. package/.medusa/server/src/jobs/price-rule-status-updates.js +80 -0
  26. package/.medusa/server/src/lib/api-response.js +42 -0
  27. package/.medusa/server/src/lib/utils.js +10 -0
  28. package/.medusa/server/src/links/mtm-freebie-rule-with-customers.js +16 -0
  29. package/.medusa/server/src/links/mtm-freebie-rule-with-products-categories.js +16 -0
  30. package/.medusa/server/src/links/mtm-freebie-rule-with-products-variants.js +18 -0
  31. package/.medusa/server/src/links/mtm-price-rule-with-customers.js +16 -0
  32. package/.medusa/server/src/links/mtm-price-rule-with-products-categories.js +16 -0
  33. package/.medusa/server/src/links/mtm-price-rule-with-products-variants.js +16 -0
  34. package/.medusa/server/src/modules/discounts/index.js +13 -0
  35. package/.medusa/server/src/modules/discounts/migrations/Migration20250526174351.js +21 -0
  36. package/.medusa/server/src/modules/discounts/migrations/Migration20250527074936.js +14 -0
  37. package/.medusa/server/src/modules/discounts/migrations/Migration20250527104919.js +14 -0
  38. package/.medusa/server/src/modules/discounts/migrations/Migration20250527113947.js +14 -0
  39. package/.medusa/server/src/modules/discounts/migrations/Migration20250529123956.js +14 -0
  40. package/.medusa/server/src/modules/discounts/migrations/Migration20250602052234.js +14 -0
  41. package/.medusa/server/src/modules/discounts/migrations/Migration20250602052239.js +14 -0
  42. package/.medusa/server/src/modules/discounts/migrations/Migration20250602165037.js +16 -0
  43. package/.medusa/server/src/modules/discounts/migrations/Migration20250602194000.js +130 -0
  44. package/.medusa/server/src/modules/discounts/migrations/Migration20250603053221.js +16 -0
  45. package/.medusa/server/src/modules/discounts/migrations/Migration20250604162727.js +14 -0
  46. package/.medusa/server/src/modules/discounts/migrations/Migration20250604162741.js +14 -0
  47. package/.medusa/server/src/modules/discounts/migrations/Migration20250604175305.js +15 -0
  48. package/.medusa/server/src/modules/discounts/migrations/Migration20250605161922.js +14 -0
  49. package/.medusa/server/src/modules/discounts/migrations/Migration20250605162116.js +14 -0
  50. package/.medusa/server/src/modules/discounts/migrations/Migration20250605164908.js +14 -0
  51. package/.medusa/server/src/modules/discounts/migrations/Migration20250610063653.js +14 -0
  52. package/.medusa/server/src/modules/discounts/migrations/Migration20250611105345.js +14 -0
  53. package/.medusa/server/src/modules/discounts/migrations/Migration20250611105356.js +14 -0
  54. package/.medusa/server/src/modules/discounts/migrations/Migration20250617113007.js +14 -0
  55. package/.medusa/server/src/modules/discounts/models/discount-code.js +20 -0
  56. package/.medusa/server/src/modules/discounts/models/freebie-rule.js +27 -0
  57. package/.medusa/server/src/modules/discounts/models/price-rule.js +53 -0
  58. package/.medusa/server/src/modules/discounts/service.js +98 -0
  59. package/.medusa/server/src/workflows/discount/add-more-code-in-price-rule/index.js +28 -0
  60. package/.medusa/server/src/workflows/discount/apply-coupon/index.js +41 -0
  61. package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step-backup.js +245 -0
  62. package/.medusa/server/src/workflows/discount/apply-coupon/steps/apply-coupon-step.js +244 -0
  63. package/.medusa/server/src/workflows/discount/apply-coupon/steps/generate-adjustment-line-item.js +28 -0
  64. package/.medusa/server/src/workflows/discount/apply-coupon/steps/validate-coupon-step.js +212 -0
  65. package/.medusa/server/src/workflows/discount/apply-freebie/index.js +31 -0
  66. package/.medusa/server/src/workflows/discount/apply-freebie/steps/add-freebie-items-to-cart.js +212 -0
  67. package/.medusa/server/src/workflows/discount/apply-freebie/steps/remove-freebie-from-cart.js +16 -0
  68. package/.medusa/server/src/workflows/discount/auto-apply-coupon/index.js +10 -0
  69. package/.medusa/server/src/workflows/discount/auto-apply-coupon/steps/auto-apply-coupon.js +81 -0
  70. package/.medusa/server/src/workflows/discount/calculate-coupon-discount/index.js +74 -0
  71. package/.medusa/server/src/workflows/discount/create-bulk-discount/index.js +46 -0
  72. package/.medusa/server/src/workflows/discount/create-bulk-discount/steps/add-bulk-codes-to-rule.js +84 -0
  73. package/.medusa/server/src/workflows/discount/create-discount-code/index.js +10 -0
  74. package/.medusa/server/src/workflows/discount/create-discount-code/steps/create-discount-code-step.js +20 -0
  75. package/.medusa/server/src/workflows/discount/create-discount-price-rule/index.js +56 -0
  76. package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/create-discount-price-rule-step.js +58 -0
  77. package/.medusa/server/src/workflows/discount/create-discount-price-rule/steps/validate-customer-exists.js +21 -0
  78. package/.medusa/server/src/workflows/discount/create-freebie-rule/index.js +44 -0
  79. package/.medusa/server/src/workflows/discount/create-freebie-rule/steps/create-freebie-rule-step.js +64 -0
  80. package/.medusa/server/src/workflows/discount/export-codes/index.js +14 -0
  81. package/.medusa/server/src/workflows/discount/export-codes/steps/export-codes-step.js +116 -0
  82. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/index.js +15 -0
  83. package/.medusa/server/src/workflows/discount/get-cart-eligible-coupons/step/get-cart-eligible-coupon.js +39 -0
  84. package/.medusa/server/src/workflows/discount/get-product-offers/index.js +25 -0
  85. package/.medusa/server/src/workflows/discount/get-product-offers/step/calculate-product-offers.js +53 -0
  86. package/.medusa/server/src/workflows/discount/index.js +28 -0
  87. package/.medusa/server/src/workflows/discount/remove-coupon/index.js +18 -0
  88. package/.medusa/server/src/workflows/discount/remove-coupon/step/remove-coupon-step.js +32 -0
  89. package/.medusa/server/src/workflows/discount/steps/validate-cart-exists.js +22 -0
  90. package/.medusa/server/src/workflows/discount/steps/validate-discount-code-exists.js +20 -0
  91. package/.medusa/server/src/workflows/discount/steps/validate-freebie-code-exists.js +16 -0
  92. package/.medusa/server/src/workflows/discount/steps/validate-same-prefix-rule-exists.js +20 -0
  93. package/.medusa/server/src/workflows/discount/update-discount-price-rule/index.js +42 -0
  94. package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/update-discount-price-rule-step.js +160 -0
  95. package/.medusa/server/src/workflows/discount/update-discount-price-rule/steps/validate-discount-price-rule-update-step.js +175 -0
  96. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/index.js +44 -0
  97. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/update-freebie-price-rule-step.js +201 -0
  98. package/.medusa/server/src/workflows/discount/update-freebie-price-rule/steps/validate-freebie-rule-update-step.js +44 -0
  99. package/.medusa/server/src/workflows/index.js +18 -0
  100. package/.medusa/server/src/workflows/product/steps/validate-product-category-exists.js +26 -0
  101. package/.medusa/server/src/workflows/product/steps/validate-product-exists.js +28 -0
  102. package/.medusa/server/src/workflows/product/steps/validate-product-variant-exists.js +26 -0
  103. package/.medusa/server/src/workflows/steps/throw-error-step.js +9 -0
  104. package/README.md +64 -0
  105. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc2NvdW50cy9mcmVlYmllLXJ1bGVzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFlQSxrQkFpQ0M7QUFFRCxrQkEwREM7QUF2R0Qsa0VBSXlDO0FBQ3pDLDJJQUF5RztBQUN6RywyR0FBNkc7QUFFN0cscURBQW9EO0FBRTdDLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQThELEVBQzlELEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMERBQThCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNyRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFO1NBQ3BDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFBQyxxQ0FBcUMsRUFBRSxHQUFHLENBQUMsQ0FDaEUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEQsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNaLElBQUksRUFBRSxZQUFZO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7YUFDcEM7U0FDRixD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
@@ -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=