medusa-plugin-automation 0.1.0

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 (59) hide show
  1. package/.medusa/server/medusa-config.d.ts +1 -0
  2. package/.medusa/server/medusa-config.js +23 -0
  3. package/.medusa/server/src/admin/index.js +9920 -0
  4. package/.medusa/server/src/admin/index.mjs +9918 -0
  5. package/.medusa/server/src/admin/lib/medusa-events.d.ts +16 -0
  6. package/.medusa/server/src/admin/lib/medusa-events.js +131 -0
  7. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/deliveries/retry/route.d.ts +3 -0
  8. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/deliveries/retry/route.js +56 -0
  9. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/deliveries/route.d.ts +2 -0
  10. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/deliveries/route.js +26 -0
  11. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/query/route.d.ts +5 -0
  12. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/query/route.js +46 -0
  13. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/automations/[id]/actions/[actionId]/route.js +37 -0
  15. package/.medusa/server/src/api/admin/automations/[id]/actions/route.d.ts +5 -0
  16. package/.medusa/server/src/api/admin/automations/[id]/actions/route.js +44 -0
  17. package/.medusa/server/src/api/admin/automations/[id]/receipts/route.d.ts +2 -0
  18. package/.medusa/server/src/api/admin/automations/[id]/receipts/route.js +17 -0
  19. package/.medusa/server/src/api/admin/automations/[id]/route.d.ts +5 -0
  20. package/.medusa/server/src/api/admin/automations/[id]/route.js +37 -0
  21. package/.medusa/server/src/api/admin/automations/route.d.ts +5 -0
  22. package/.medusa/server/src/api/admin/automations/route.js +36 -0
  23. package/.medusa/server/src/api/admin/automations/secrets/[id]/route.d.ts +2 -0
  24. package/.medusa/server/src/api/admin/automations/secrets/[id]/route.js +13 -0
  25. package/.medusa/server/src/api/admin/automations/secrets/route.d.ts +4 -0
  26. package/.medusa/server/src/api/admin/automations/secrets/route.js +38 -0
  27. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  28. package/.medusa/server/src/api/middlewares.js +169 -0
  29. package/.medusa/server/src/api/validators.d.ts +470 -0
  30. package/.medusa/server/src/api/validators.js +123 -0
  31. package/.medusa/server/src/api/webhooks/[id]/route.d.ts +2 -0
  32. package/.medusa/server/src/api/webhooks/[id]/route.js +78 -0
  33. package/.medusa/server/src/lib/dispatch.d.ts +43 -0
  34. package/.medusa/server/src/lib/dispatch.js +400 -0
  35. package/.medusa/server/src/modules/automation/index.d.ts +92 -0
  36. package/.medusa/server/src/modules/automation/index.js +25 -0
  37. package/.medusa/server/src/modules/automation/migrations/Migration20260409171930.d.ts +5 -0
  38. package/.medusa/server/src/modules/automation/migrations/Migration20260409171930.js +47 -0
  39. package/.medusa/server/src/modules/automation/models/automation-action.d.ts +75 -0
  40. package/.medusa/server/src/modules/automation/models/automation-action.js +41 -0
  41. package/.medusa/server/src/modules/automation/models/automation-delivery.d.ts +57 -0
  42. package/.medusa/server/src/modules/automation/models/automation-delivery.js +23 -0
  43. package/.medusa/server/src/modules/automation/models/automation-query.d.ts +52 -0
  44. package/.medusa/server/src/modules/automation/models/automation-query.js +14 -0
  45. package/.medusa/server/src/modules/automation/models/automation-receipt.d.ts +53 -0
  46. package/.medusa/server/src/modules/automation/models/automation-receipt.js +29 -0
  47. package/.medusa/server/src/modules/automation/models/automation-secret.d.ts +5 -0
  48. package/.medusa/server/src/modules/automation/models/automation-secret.js +10 -0
  49. package/.medusa/server/src/modules/automation/models/automation-trigger.d.ts +56 -0
  50. package/.medusa/server/src/modules/automation/models/automation-trigger.js +27 -0
  51. package/.medusa/server/src/modules/automation/service.d.ts +274 -0
  52. package/.medusa/server/src/modules/automation/service.js +21 -0
  53. package/.medusa/server/src/modules/automation/types.d.ts +13 -0
  54. package/.medusa/server/src/modules/automation/types.js +3 -0
  55. package/.medusa/server/src/subscribers/automation-dispatcher.d.ts +3 -0
  56. package/.medusa/server/src/subscribers/automation-dispatcher.js +51 -0
  57. package/LICENSE.md +73 -0
  58. package/README.md +53 -0
  59. package/package.json +91 -0
@@ -0,0 +1,16 @@
1
+ export type EventPayloadField = {
2
+ key: string;
3
+ type: 'string' | 'number' | 'boolean' | 'object' | 'array';
4
+ fields?: EventPayloadField[];
5
+ };
6
+ export type MedusaEvent = {
7
+ name: string;
8
+ label: string;
9
+ category: string;
10
+ payload: EventPayloadField[];
11
+ };
12
+ export declare const MEDUSA_EVENTS: MedusaEvent[];
13
+ export declare const MEDUSA_EVENTS_BY_NAME: {
14
+ [k: string]: MedusaEvent;
15
+ };
16
+ export declare const MEDUSA_EVENT_CATEGORIES: string[];
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ // Static registry of all standard Medusa events and their payload schemas.
3
+ // Used in the webhook configuration UI for event selection and field mapping.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.MEDUSA_EVENT_CATEGORIES = exports.MEDUSA_EVENTS_BY_NAME = exports.MEDUSA_EVENTS = void 0;
6
+ exports.MEDUSA_EVENTS = [
7
+ // Auth
8
+ {
9
+ name: 'auth.password_reset',
10
+ label: 'Password Reset',
11
+ category: 'Auth',
12
+ payload: [
13
+ { key: 'entity_id', type: 'string' },
14
+ { key: 'actor_type', type: 'string' },
15
+ { key: 'token', type: 'string' },
16
+ { key: 'metadata', type: 'object' }
17
+ ]
18
+ },
19
+ // Cart
20
+ { name: 'cart.created', label: 'Cart Created', category: 'Cart', payload: [{ key: 'id', type: 'string' }] },
21
+ { name: 'cart.updated', label: 'Cart Updated', category: 'Cart', payload: [{ key: 'id', type: 'string' }] },
22
+ { name: 'cart.region_updated', label: 'Cart Region Updated', category: 'Cart', payload: [{ key: 'id', type: 'string' }] },
23
+ {
24
+ name: 'cart.customer_transferred',
25
+ label: 'Cart Customer Transferred',
26
+ category: 'Cart',
27
+ payload: [{ key: 'id', type: 'string' }, { key: 'customer_id', type: 'string' }]
28
+ },
29
+ // Customer
30
+ { name: 'customer.created', label: 'Customer Created', category: 'Customer', payload: [{ key: 'id', type: 'string' }] },
31
+ { name: 'customer.updated', label: 'Customer Updated', category: 'Customer', payload: [{ key: 'id', type: 'string' }] },
32
+ { name: 'customer.deleted', label: 'Customer Deleted', category: 'Customer', payload: [{ key: 'id', type: 'string' }] },
33
+ // Fulfillment
34
+ { name: 'shipment.created', label: 'Shipment Created', category: 'Fulfillment', payload: [{ key: 'id', type: 'string' }, { key: 'no_notification', type: 'boolean' }] },
35
+ { name: 'delivery.created', label: 'Delivery Created', category: 'Fulfillment', payload: [{ key: 'id', type: 'string' }] },
36
+ // Invite
37
+ { name: 'invite.accepted', label: 'Invite Accepted', category: 'Invite', payload: [{ key: 'id', type: 'string' }] },
38
+ { name: 'invite.created', label: 'Invite Created', category: 'Invite', payload: [{ key: 'id', type: 'string' }] },
39
+ { name: 'invite.deleted', label: 'Invite Deleted', category: 'Invite', payload: [{ key: 'id', type: 'string' }] },
40
+ { name: 'invite.resent', label: 'Invite Resent', category: 'Invite', payload: [{ key: 'id', type: 'string' }] },
41
+ // Order Edit
42
+ {
43
+ name: 'order-edit.requested',
44
+ label: 'Order Edit Requested',
45
+ category: 'Order Edit',
46
+ payload: [{ key: 'order_id', type: 'string' }, { key: 'actions', type: 'array' }]
47
+ },
48
+ {
49
+ name: 'order-edit.confirmed',
50
+ label: 'Order Edit Confirmed',
51
+ category: 'Order Edit',
52
+ payload: [{ key: 'order_id', type: 'string' }, { key: 'actions', type: 'array' }]
53
+ },
54
+ {
55
+ name: 'order-edit.canceled',
56
+ label: 'Order Edit Canceled',
57
+ category: 'Order Edit',
58
+ payload: [{ key: 'order_id', type: 'string' }, { key: 'actions', type: 'array' }]
59
+ },
60
+ // Order
61
+ { name: 'order.updated', label: 'Order Updated', category: 'Order', payload: [{ key: 'id', type: 'string' }] },
62
+ { name: 'order.placed', label: 'Order Placed', category: 'Order', payload: [{ key: 'id', type: 'string' }] },
63
+ { name: 'order.canceled', label: 'Order Canceled', category: 'Order', payload: [{ key: 'id', type: 'string' }] },
64
+ { name: 'order.completed', label: 'Order Completed', category: 'Order', payload: [{ key: 'id', type: 'string' }] },
65
+ { name: 'order.archived', label: 'Order Archived', category: 'Order', payload: [{ key: 'id', type: 'string' }] },
66
+ { name: 'order.fulfillment_created', label: 'Order Fulfillment Created', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'fulfillment_id', type: 'string' }, { key: 'no_notification', type: 'boolean' }] },
67
+ { name: 'order.fulfillment_canceled', label: 'Order Fulfillment Canceled', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'fulfillment_id', type: 'string' }, { key: 'no_notification', type: 'boolean' }] },
68
+ { name: 'order.return_requested', label: 'Order Return Requested', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'return_id', type: 'string' }] },
69
+ { name: 'order.return_received', label: 'Order Return Received', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'return_id', type: 'string' }] },
70
+ { name: 'order.claim_created', label: 'Order Claim Created', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'claim_id', type: 'string' }] },
71
+ { name: 'order.exchange_created', label: 'Order Exchange Created', category: 'Order', payload: [{ key: 'order_id', type: 'string' }, { key: 'exchange_id', type: 'string' }] },
72
+ { name: 'order.transfer_requested', label: 'Order Transfer Requested', category: 'Order', payload: [{ key: 'id', type: 'string' }, { key: 'order_change_id', type: 'string' }] },
73
+ // Payment
74
+ { name: 'payment.captured', label: 'Payment Captured', category: 'Payment', payload: [{ key: 'id', type: 'string' }] },
75
+ { name: 'payment.refunded', label: 'Payment Refunded', category: 'Payment', payload: [{ key: 'id', type: 'string' }] },
76
+ // Product Category
77
+ { name: 'product-category.created', label: 'Product Category Created', category: 'Product Category', payload: [{ key: 'id', type: 'string' }] },
78
+ { name: 'product-category.updated', label: 'Product Category Updated', category: 'Product Category', payload: [{ key: 'id', type: 'string' }] },
79
+ { name: 'product-category.deleted', label: 'Product Category Deleted', category: 'Product Category', payload: [{ key: 'id', type: 'string' }] },
80
+ // Product Collection
81
+ { name: 'product-collection.created', label: 'Product Collection Created', category: 'Product Collection', payload: [{ key: 'id', type: 'string' }] },
82
+ { name: 'product-collection.updated', label: 'Product Collection Updated', category: 'Product Collection', payload: [{ key: 'id', type: 'string' }] },
83
+ { name: 'product-collection.deleted', label: 'Product Collection Deleted', category: 'Product Collection', payload: [{ key: 'id', type: 'string' }] },
84
+ // Product Option
85
+ { name: 'product-option.created', label: 'Product Option Created', category: 'Product Option', payload: [{ key: 'id', type: 'string' }] },
86
+ { name: 'product-option.updated', label: 'Product Option Updated', category: 'Product Option', payload: [{ key: 'id', type: 'string' }] },
87
+ { name: 'product-option.deleted', label: 'Product Option Deleted', category: 'Product Option', payload: [{ key: 'id', type: 'string' }] },
88
+ // Product Tag
89
+ { name: 'product-tag.created', label: 'Product Tag Created', category: 'Product Tag', payload: [{ key: 'id', type: 'string' }] },
90
+ { name: 'product-tag.updated', label: 'Product Tag Updated', category: 'Product Tag', payload: [{ key: 'id', type: 'string' }] },
91
+ { name: 'product-tag.deleted', label: 'Product Tag Deleted', category: 'Product Tag', payload: [{ key: 'id', type: 'string' }] },
92
+ // Product Type
93
+ { name: 'product-type.created', label: 'Product Type Created', category: 'Product Type', payload: [{ key: 'id', type: 'string' }] },
94
+ { name: 'product-type.updated', label: 'Product Type Updated', category: 'Product Type', payload: [{ key: 'id', type: 'string' }] },
95
+ { name: 'product-type.deleted', label: 'Product Type Deleted', category: 'Product Type', payload: [{ key: 'id', type: 'string' }] },
96
+ // Product Variant
97
+ { name: 'product-variant.created', label: 'Product Variant Created', category: 'Product Variant', payload: [{ key: 'id', type: 'string' }] },
98
+ { name: 'product-variant.updated', label: 'Product Variant Updated', category: 'Product Variant', payload: [{ key: 'id', type: 'string' }] },
99
+ { name: 'product-variant.deleted', label: 'Product Variant Deleted', category: 'Product Variant', payload: [{ key: 'id', type: 'string' }] },
100
+ // Product
101
+ { name: 'product.created', label: 'Product Created', category: 'Product', payload: [{ key: 'id', type: 'string' }] },
102
+ { name: 'product.updated', label: 'Product Updated', category: 'Product', payload: [{ key: 'id', type: 'string' }] },
103
+ { name: 'product.deleted', label: 'Product Deleted', category: 'Product', payload: [{ key: 'id', type: 'string' }] },
104
+ // Region
105
+ { name: 'region.created', label: 'Region Created', category: 'Region', payload: [{ key: 'id', type: 'string' }] },
106
+ { name: 'region.updated', label: 'Region Updated', category: 'Region', payload: [{ key: 'id', type: 'string' }] },
107
+ { name: 'region.deleted', label: 'Region Deleted', category: 'Region', payload: [{ key: 'id', type: 'string' }] },
108
+ // Sales Channel
109
+ { name: 'sales-channel.created', label: 'Sales Channel Created', category: 'Sales Channel', payload: [{ key: 'id', type: 'string' }] },
110
+ { name: 'sales-channel.updated', label: 'Sales Channel Updated', category: 'Sales Channel', payload: [{ key: 'id', type: 'string' }] },
111
+ { name: 'sales-channel.deleted', label: 'Sales Channel Deleted', category: 'Sales Channel', payload: [{ key: 'id', type: 'string' }] },
112
+ // Shipping Option Type
113
+ { name: 'shipping-option-type.created', label: 'Shipping Option Type Created', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
114
+ { name: 'shipping-option-type.updated', label: 'Shipping Option Type Updated', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
115
+ { name: 'shipping-option-type.deleted', label: 'Shipping Option Type Deleted', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
116
+ // Shipping Option
117
+ { name: 'shipping-option.created', label: 'Shipping Option Created', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
118
+ { name: 'shipping-option.updated', label: 'Shipping Option Updated', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
119
+ { name: 'shipping-option.deleted', label: 'Shipping Option Deleted', category: 'Shipping Option', payload: [{ key: 'id', type: 'string' }] },
120
+ // Translation
121
+ { name: 'translation.created', label: 'Translation Created', category: 'Translation', payload: [{ key: 'id', type: 'string' }] },
122
+ { name: 'translation.updated', label: 'Translation Updated', category: 'Translation', payload: [{ key: 'id', type: 'string' }] },
123
+ { name: 'translation.deleted', label: 'Translation Deleted', category: 'Translation', payload: [{ key: 'id', type: 'string' }] },
124
+ // User
125
+ { name: 'user.created', label: 'User Created', category: 'User', payload: [{ key: 'id', type: 'string' }] },
126
+ { name: 'user.updated', label: 'User Updated', category: 'User', payload: [{ key: 'id', type: 'string' }] },
127
+ { name: 'user.deleted', label: 'User Deleted', category: 'User', payload: [{ key: 'id', type: 'string' }] }
128
+ ];
129
+ exports.MEDUSA_EVENTS_BY_NAME = Object.fromEntries(exports.MEDUSA_EVENTS.map(e => [e.name, e]));
130
+ exports.MEDUSA_EVENT_CATEGORIES = [...new Set(exports.MEDUSA_EVENTS.map(e => e.category))];
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkdXNhLWV2ZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9saWIvbWVkdXNhLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkVBQTJFO0FBQzNFLDhFQUE4RTs7O0FBZWpFLFFBQUEsYUFBYSxHQUFrQjtJQUMzQyxPQUFPO0lBQ1A7UUFDQyxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsUUFBUSxFQUFFLE1BQU07UUFDaEIsT0FBTyxFQUFFO1lBQ1IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDcEMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDckMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDaEMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7U0FDbkM7S0FDRDtJQUNELE9BQU87SUFDUCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRTtJQUMzRyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRTtJQUMzRyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJ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
@@ -0,0 +1,3 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminRetryAutomationDeliveriesType } from '../../../../../../../validators';
3
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminRetryAutomationDeliveriesType>, res: MedusaResponse) => Promise<MedusaResponse | undefined>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const automation_1 = require("../../../../../../../../modules/automation");
5
+ const dispatch_1 = require("../../../../../../../../lib/dispatch");
6
+ const POST = async (req, res) => {
7
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
8
+ const { actionId } = req.params;
9
+ const { delivery_ids, status, since, until } = req.body;
10
+ // Fetch the action to dispatch against
11
+ const [action] = await automationService.listAutomationActions({ id: actionId }, { take: 1 });
12
+ if (!action) {
13
+ return res.status(404).json({ error: 'Action not found' });
14
+ }
15
+ // Find deliveries to retry — either by IDs or by filters
16
+ let deliveries;
17
+ if (delivery_ids) {
18
+ ;
19
+ [deliveries] = await automationService.listAndCountAutomationDeliveries({ id: delivery_ids, action_id: actionId }, { take: delivery_ids.length });
20
+ }
21
+ else {
22
+ const filters = { action_id: actionId };
23
+ if (status)
24
+ filters.status = status;
25
+ if (since || until) {
26
+ filters.created_at = {
27
+ ...(since ? { $gte: new Date(since) } : {}),
28
+ ...(until ? { $lte: new Date(until) } : {})
29
+ };
30
+ }
31
+ ;
32
+ [deliveries] = await automationService.listAndCountAutomationDeliveries(filters, { take: 1000, order: { created_at: 'ASC' } });
33
+ }
34
+ if (deliveries.length === 0) {
35
+ return res.json({ retried: 0, succeeded: 0, failed: 0 });
36
+ }
37
+ const opts = {
38
+ signOutgoing: true,
39
+ maxWorkflowIterations: automationService.getOptions().maxWorkflowIterations
40
+ };
41
+ let succeeded = 0;
42
+ let failed = 0;
43
+ for (const delivery of deliveries) {
44
+ const payload = delivery.request_payload ?? {};
45
+ const result = await (0, dispatch_1.dispatchAndRecord)(req.scope, action, payload, `retry:${delivery.event_name ?? 'unknown'}`, opts);
46
+ if (result.status === 'success') {
47
+ succeeded++;
48
+ }
49
+ else {
50
+ failed++;
51
+ }
52
+ }
53
+ res.json({ retried: deliveries.length, succeeded, failed });
54
+ };
55
+ exports.POST = POST;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vYWN0aW9ucy9bYWN0aW9uSWRdL2RlbGl2ZXJpZXMvcmV0cnkvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkVBQThFO0FBRzlFLG1FQUF3RTtBQUVqRSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQW1FLEVBQ25FLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQy9CLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFBO0lBRXZELHVDQUF1QztJQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNiLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCx5REFBeUQ7SUFDekQsSUFBSSxVQUFpQixDQUFBO0lBQ3JCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUFBLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FDdkUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFDekMsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUM3QixDQUFBO0lBQ0YsQ0FBQztTQUFNLENBQUM7UUFDUCxNQUFNLE9BQU8sR0FBNEIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUE7UUFDaEUsSUFBSSxNQUFNO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDbkMsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLFVBQVUsR0FBRztnQkFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDM0MsQ0FBQTtRQUNGLENBQUM7UUFDRCxDQUFDO1FBQUEsQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLGdDQUFnQyxDQUN2RSxPQUFPLEVBQ1AsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUM1QyxDQUFBO0lBQ0YsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHO1FBQ1osWUFBWSxFQUFFLElBQUk7UUFDbEIscUJBQXFCLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMscUJBQXFCO0tBQzNFLENBQUE7SUFFRCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDakIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBRWQsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FBSSxRQUFRLENBQUMsZUFBMkMsSUFBSSxFQUFFLENBQUE7UUFDM0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLDRCQUFpQixFQUNyQyxHQUFHLENBQUMsS0FBSyxFQUNULE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxRQUFRLENBQUMsVUFBVSxJQUFJLFNBQVMsRUFBRSxFQUMzQyxJQUFJLENBQ0osQ0FBQTtRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxTQUFTLEVBQUUsQ0FBQTtRQUNaLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxFQUFFLENBQUE7UUFDVCxDQUFDO0lBQ0YsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtBQUM1RCxDQUFDLENBQUE7QUFqRVksUUFBQSxJQUFJLFFBaUVoQiJ9
@@ -0,0 +1,2 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const automation_1 = require("../../../../../../../modules/automation");
5
+ const GET = async (req, res) => {
6
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
7
+ const { actionId } = req.params;
8
+ const { limit, offset, status, since, until } = req.validatedQuery;
9
+ const filters = { action_id: actionId };
10
+ if (status)
11
+ filters.status = status;
12
+ if (since || until) {
13
+ filters.created_at = {
14
+ ...(since ? { $gte: new Date(since) } : {}),
15
+ ...(until ? { $lte: new Date(until) } : {})
16
+ };
17
+ }
18
+ const [deliveries, count] = await automationService.listAndCountAutomationDeliveries(filters, {
19
+ skip: offset ?? 0,
20
+ take: limit ?? 20,
21
+ order: { created_at: 'DESC' }
22
+ });
23
+ res.json({ deliveries, count, limit: limit ?? 20, offset: offset ?? 0 });
24
+ };
25
+ exports.GET = GET;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vYWN0aW9ucy9bYWN0aW9uSWRdL2RlbGl2ZXJpZXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esd0VBQTJFO0FBSXBFLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFzQyxFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUN4RixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQy9CLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWtELENBQUE7SUFFdEcsTUFBTSxPQUFPLEdBQTRCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFBO0lBQ2hFLElBQUksTUFBTTtRQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0lBQ25DLElBQUksS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxVQUFVLEdBQUc7WUFDcEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUMzQyxDQUFBO0lBQ0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FDbkYsT0FBTyxFQUNQO1FBQ0MsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDO1FBQ2pCLElBQUksRUFBRSxLQUFLLElBQUksRUFBRTtRQUNqQixLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO0tBQzdCLENBQ0QsQ0FBQTtJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUN6RSxDQUFDLENBQUE7QUF4QlksUUFBQSxHQUFHLE9Bd0JmIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminUpsertAutomationQueryType } from '../../../../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpsertAutomationQueryType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const automation_1 = require("../../../../../../../modules/automation");
5
+ const GET = async (req, res) => {
6
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
7
+ const { actionId } = req.params;
8
+ const queries = await automationService.listAutomationQueries({ action_id: actionId }, { take: 1 });
9
+ res.json({ query: queries[0] ?? null });
10
+ };
11
+ exports.GET = GET;
12
+ const POST = async (req, res) => {
13
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
14
+ const { actionId } = req.params;
15
+ const body = req.validatedBody;
16
+ const clampedLimit = body.limit !== undefined ? Math.min(body.limit, 100) : 10;
17
+ const [existing] = await automationService.listAutomationQueries({ action_id: actionId }, { take: 1 });
18
+ let query;
19
+ if (existing) {
20
+ query = await automationService.updateAutomationQueries({
21
+ id: existing.id,
22
+ ...body,
23
+ limit: clampedLimit
24
+ });
25
+ }
26
+ else {
27
+ query = await automationService.createAutomationQueries({
28
+ ...body,
29
+ limit: clampedLimit,
30
+ action_id: actionId
31
+ });
32
+ }
33
+ res.json({ query });
34
+ };
35
+ exports.POST = POST;
36
+ const DELETE = async (req, res) => {
37
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
38
+ const { actionId } = req.params;
39
+ const [existing] = await automationService.listAutomationQueries({ action_id: actionId }, { take: 1 });
40
+ if (existing) {
41
+ await automationService.deleteAutomationQueries(existing.id);
42
+ }
43
+ res.json({ deleted: true });
44
+ };
45
+ exports.DELETE = DELETE;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vYWN0aW9ucy9bYWN0aW9uSWRdL3F1ZXJ5L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHdFQUEyRTtBQUlwRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBc0MsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDeEYsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBc0IsQ0FBQTtJQUNuRixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUUvQixNQUFNLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUN4QyxDQUFDLENBQUE7QUFOWSxRQUFBLEdBQUcsT0FNZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBK0QsRUFDL0QsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDL0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUU5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFOUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMscUJBQXFCLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUV0RyxJQUFJLEtBQUssQ0FBQTtJQUNULElBQUksUUFBUSxFQUFFLENBQUM7UUFDZCxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQztZQUN2RCxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDZixHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUsWUFBWTtTQUNaLENBQUMsQ0FBQTtJQUNWLENBQUM7U0FBTSxDQUFDO1FBQ1AsS0FBSyxHQUFHLE1BQU0saUJBQWlCLENBQUMsdUJBQXVCLENBQUM7WUFDdkQsR0FBRyxJQUFJO1lBQ1AsS0FBSyxFQUFFLFlBQVk7WUFDbkIsU0FBUyxFQUFFLFFBQVE7U0FDWixDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDcEIsQ0FBQyxDQUFBO0FBNUJZLFFBQUEsSUFBSSxRQTRCaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBc0MsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDM0YsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBc0IsQ0FBQTtJQUNuRixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUUvQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3RHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzVCLENBQUMsQ0FBQTtBQVZZLFFBQUEsTUFBTSxVQVVsQiJ9
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminUpdateAutomationActionType } from '../../../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateAutomationActionType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const automation_1 = require("../../../../../../modules/automation");
6
+ const GET = async (req, res) => {
7
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
8
+ const { actionId } = req.params;
9
+ const [action] = await automationService.listAutomationActions({ id: actionId }, { take: 1 });
10
+ if (!action) {
11
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AutomationAction with id ${actionId} not found`);
12
+ }
13
+ res.json({ action });
14
+ };
15
+ exports.GET = GET;
16
+ const POST = async (req, res) => {
17
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
18
+ const { actionId } = req.params;
19
+ const [existing] = await automationService.listAutomationActions({ id: actionId }, { take: 1 });
20
+ if (!existing) {
21
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AutomationAction with id ${actionId} not found`);
22
+ }
23
+ const action = await automationService.updateAutomationActions({
24
+ id: actionId,
25
+ ...req.validatedBody
26
+ });
27
+ res.json({ action });
28
+ };
29
+ exports.POST = POST;
30
+ const DELETE = async (req, res) => {
31
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
32
+ const { actionId } = req.params;
33
+ await automationService.deleteAutomationActions([actionId]);
34
+ res.json({ deleted: [actionId] });
35
+ };
36
+ exports.DELETE = DELETE;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vYWN0aW9ucy9bYWN0aW9uSWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF1RDtBQUN2RCxxRUFBd0U7QUFJakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQXNDLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3hGLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3RixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksbUJBQVcsQ0FDcEIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQiw0QkFBNEIsUUFBUSxZQUFZLENBQ2hELENBQUE7SUFDRixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBYlksUUFBQSxHQUFHLE9BYWY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQWdFLEVBQ2hFLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRS9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDL0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLG1CQUFXLENBQ3BCLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsNEJBQTRCLFFBQVEsWUFBWSxDQUNoRCxDQUFBO0lBQ0YsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU8saUJBQWlCLENBQUMsdUJBQXVCLENBQUM7UUFDL0QsRUFBRSxFQUFFLFFBQVE7UUFDWixHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ2IsQ0FBUyxDQUFBO0lBQ2pCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ3JCLENBQUMsQ0FBQTtBQXBCWSxRQUFBLElBQUksUUFvQmhCO0FBRU0sTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQXNDLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQzNGLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDL0IsTUFBTSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNsQyxDQUFDLENBQUE7QUFMWSxRQUFBLE1BQU0sVUFLbEIifQ==
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateAutomationActionType, AdminDeleteAutomationActionsType } from '../../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateAutomationActionType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteAutomationActionsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const automation_1 = require("../../../../../modules/automation");
6
+ const GET = async (req, res) => {
7
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
8
+ const { id: trigger_id } = req.params;
9
+ const { limit, offset, action_type, is_active } = req.validatedQuery;
10
+ const filters = { trigger_id };
11
+ if (action_type)
12
+ filters.action_type = action_type;
13
+ if (is_active !== undefined)
14
+ filters.is_active = is_active;
15
+ const [actions, count] = await automationService.listAndCountAutomationActions(filters, {
16
+ skip: offset ?? 0,
17
+ take: limit ?? 20,
18
+ order: { created_at: 'DESC' }
19
+ });
20
+ res.json({ actions, count, limit: limit ?? 20, offset: offset ?? 0 });
21
+ };
22
+ exports.GET = GET;
23
+ const POST = async (req, res) => {
24
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
25
+ const { id: trigger_id } = req.params;
26
+ const [trigger] = await automationService.listAutomationTriggers({ id: trigger_id }, { take: 1 });
27
+ if (!trigger) {
28
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AutomationTrigger with id ${trigger_id} not found`);
29
+ }
30
+ const action = await automationService.createAutomationActions({
31
+ ...req.validatedBody,
32
+ trigger_id
33
+ });
34
+ res.json({ action });
35
+ };
36
+ exports.POST = POST;
37
+ const DELETE = async (req, res) => {
38
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
39
+ const { ids } = req.validatedBody;
40
+ await automationService.deleteAutomationActions(ids);
41
+ res.json({ deleted: ids });
42
+ };
43
+ exports.DELETE = DELETE;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vYWN0aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBdUQ7QUFDdkQsa0VBQXFFO0FBUTlELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFzQyxFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUN4RixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQzlDLEdBQUcsQ0FBQyxjQUErQyxDQUFBO0lBRXBELE1BQU0sT0FBTyxHQUE0QixFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQ3ZELElBQUksV0FBVztRQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFBO0lBQ2xELElBQUksU0FBUyxLQUFLLFNBQVM7UUFBRSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtJQUUxRCxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMsNkJBQTZCLENBQUMsT0FBTyxFQUFFO1FBQ3ZGLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQztRQUNqQixJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakIsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtLQUM3QixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDdEUsQ0FBQyxDQUFBO0FBakJZLFFBQUEsR0FBRyxPQWlCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBZ0UsRUFDaEUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXJDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDakcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLG1CQUFXLENBQ3BCLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsNkJBQTZCLFVBQVUsWUFBWSxDQUNuRCxDQUFBO0lBQ0YsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0saUJBQWlCLENBQUMsdUJBQXVCLENBQUM7UUFDOUQsR0FBRyxHQUFHLENBQUMsYUFBYTtRQUNwQixVQUFVO0tBQ0gsQ0FBQyxDQUFBO0lBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBcEJZLFFBQUEsSUFBSSxRQW9CaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQzFCLEdBQWlFLEVBQ2pFLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBQ2pDLE1BQU0saUJBQWlCLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDcEQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0FBQzNCLENBQUMsQ0FBQTtBQVJZLFFBQUEsTUFBTSxVQVFsQiJ9
@@ -0,0 +1,2 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const automation_1 = require("../../../../../modules/automation");
5
+ const GET = async (req, res) => {
6
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
7
+ const { id } = req.params;
8
+ const { limit, offset } = req.validatedQuery;
9
+ const [receipts, count] = await automationService.listAndCountAutomationReceipts({ trigger_id: id }, {
10
+ skip: offset ?? 0,
11
+ take: limit ?? 20,
12
+ order: { created_at: 'DESC' }
13
+ });
14
+ res.json({ receipts, count, limit: limit ?? 20, offset: offset ?? 0 });
15
+ };
16
+ exports.GET = GET;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vcmVjZWlwdHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esa0VBQXFFO0FBSTlELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFzQyxFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUN4RixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWdELENBQUE7SUFFOUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLGlCQUFpQixDQUFDLDhCQUE4QixDQUMvRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFDbEI7UUFDQyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUM7UUFDakIsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2pCLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7S0FDN0IsQ0FDRCxDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZFLENBQUMsQ0FBQTtBQWZZLFFBQUEsR0FBRyxPQWVmIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminUpdateAutomationTriggerType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateAutomationTriggerType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const automation_1 = require("../../../../modules/automation");
6
+ const GET = async (req, res) => {
7
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
8
+ const { id } = req.params;
9
+ const [trigger] = await automationService.listAutomationTriggers({ id }, { take: 1 });
10
+ if (!trigger) {
11
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AutomationTrigger with id ${id} not found`);
12
+ }
13
+ res.json({ trigger });
14
+ };
15
+ exports.GET = GET;
16
+ const POST = async (req, res) => {
17
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
18
+ const { id } = req.params;
19
+ const [existing] = await automationService.listAutomationTriggers({ id }, { take: 1 });
20
+ if (!existing) {
21
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `AutomationTrigger with id ${id} not found`);
22
+ }
23
+ const trigger = await automationService.updateAutomationTriggers({
24
+ id,
25
+ ...req.validatedBody
26
+ });
27
+ res.json({ trigger });
28
+ };
29
+ exports.POST = POST;
30
+ const DELETE = async (req, res) => {
31
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
32
+ const { id } = req.params;
33
+ await automationService.deleteAutomationTriggers([id]);
34
+ res.json({ deleted: [id] });
35
+ };
36
+ exports.DELETE = DELETE;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXVEO0FBQ3ZELCtEQUFrRTtBQUkzRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBc0MsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDeEYsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBc0IsQ0FBQTtJQUNuRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDckYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLG1CQUFXLENBQUMsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLDZCQUE2QixFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ2hHLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUE7QUFWWSxRQUFBLEdBQUcsT0FVZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBaUUsRUFDakUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3RGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUFDLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQztRQUNqRSxFQUFFO1FBQ0YsR0FBRyxHQUFHLENBQUMsYUFBYTtLQUNiLENBQVMsQ0FBQTtJQUNqQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUN0QixDQUFDLENBQUE7QUFqQlksUUFBQSxJQUFJLFFBaUJoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUFzQyxFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUMzRixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0saUJBQWlCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3RELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBTFksUUFBQSxNQUFNLFVBS2xCIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateAutomationTriggerType, AdminDeleteAutomationTriggersType } from '../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<never>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateAutomationTriggerType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteAutomationTriggersType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const automation_1 = require("../../../modules/automation");
5
+ const GET = async (req, res) => {
6
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
7
+ const { limit, offset, q, trigger_type, is_active } = req.validatedQuery;
8
+ const filters = {};
9
+ if (trigger_type)
10
+ filters.trigger_type = trigger_type;
11
+ if (is_active !== undefined)
12
+ filters.is_active = is_active;
13
+ if (q)
14
+ filters.name = { $ilike: `%${q}%` };
15
+ const [triggers, count] = await automationService.listAndCountAutomationTriggers(filters, {
16
+ skip: offset ?? 0,
17
+ take: limit ?? 20,
18
+ order: { created_at: 'DESC' }
19
+ });
20
+ res.json({ triggers, count, limit: limit ?? 20, offset: offset ?? 0 });
21
+ };
22
+ exports.GET = GET;
23
+ const POST = async (req, res) => {
24
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
25
+ const trigger = await automationService.createAutomationTriggers(req.validatedBody);
26
+ res.json({ trigger });
27
+ };
28
+ exports.POST = POST;
29
+ const DELETE = async (req, res) => {
30
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
31
+ const { ids } = req.validatedBody;
32
+ await automationService.deleteAutomationTriggers(ids);
33
+ res.json({ deleted: ids });
34
+ };
35
+ exports.DELETE = DELETE;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDREQUErRDtBQVF4RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBc0MsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDeEYsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBc0IsQ0FBQTtJQUNuRixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUNsRCxHQUFHLENBQUMsY0FBZ0QsQ0FBQTtJQUVyRCxNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBQzNDLElBQUksWUFBWTtRQUFFLE9BQU8sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBQ3JELElBQUksU0FBUyxLQUFLLFNBQVM7UUFBRSxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtJQUMxRCxJQUFJLENBQUM7UUFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtJQUUxQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0saUJBQWlCLENBQUMsOEJBQThCLENBQUMsT0FBTyxFQUFFO1FBQ3pGLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQztRQUNqQixJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakIsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtLQUM3QixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDdkUsQ0FBQyxDQUFBO0FBakJZLFFBQUEsR0FBRyxPQWlCZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDeEIsR0FBaUUsRUFDakUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxPQUFPLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsYUFBb0IsQ0FBQyxDQUFBO0lBQzFGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQ3RCLENBQUMsQ0FBQTtBQVBZLFFBQUEsSUFBSSxRQU9oQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDMUIsR0FBa0UsRUFDbEUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsOEJBQWlCLENBQXNCLENBQUE7SUFDbkYsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDakMsTUFBTSxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNyRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDM0IsQ0FBQyxDQUFBO0FBUlksUUFBQSxNQUFNLFVBUWxCIn0=
@@ -0,0 +1,2 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = void 0;
4
+ const automation_1 = require("../../../../../modules/automation");
5
+ // DELETE /admin/automations/secrets/:id
6
+ const DELETE = async (req, res) => {
7
+ const automationService = req.scope.resolve(automation_1.AUTOMATION_MODULE);
8
+ const { id } = req.params;
9
+ await automationService.deleteAutomationSecrets(id);
10
+ res.json({ deleted: [id] });
11
+ };
12
+ exports.DELETE = DELETE;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2F1dG9tYXRpb25zL3NlY3JldHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrRUFBcUU7QUFHckUsd0NBQXdDO0FBQ2pDLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDhCQUFpQixDQUFzQixDQUFBO0lBQ25GLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0saUJBQWlCLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUM1QixDQUFDLENBQUE7QUFMWSxRQUFBLE1BQU0sVUFLbEIifQ==
@@ -0,0 +1,4 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateAutomationSecretType, AdminGetAutomationSecretsType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetAutomationSecretsType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateAutomationSecretType>, res: MedusaResponse) => Promise<void>;