@codee-sh/medusa-plugin-automations 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/_chunks/__admin-extensions__-DIB2k6nJ +10452 -0
- package/.medusa/server/src/admin/_chunks/__admin-extensions__-rqdPN7M1 +10450 -0
- package/.medusa/server/src/admin/_chunks/base-config-DbRWuXsL +7891 -0
- package/.medusa/server/src/admin/_chunks/base-config-ro-vFPBg +7908 -0
- package/.medusa/server/src/admin/index.js +2 -9930
- package/.medusa/server/src/admin/index.mjs +2 -9927
- package/.medusa/server/src/api/admin/mpn/automations/actions/route.js +4 -4
- package/.medusa/server/src/api/admin/mpn/automations/available-actions/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/available-events/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/available-triggers/route.js +1 -1
- package/.medusa/server/src/api/admin/mpn/automations/route.js +13 -15
- package/.medusa/server/src/api/admin/mpn/automations/rules/route.js +12 -7
- package/.medusa/server/src/api/middlewares.js +6 -3
- package/.medusa/server/src/hooks/api/automations/automations.js +3 -3
- package/.medusa/server/src/hooks/api/automations-actions/automations-actions.js +3 -3
- package/.medusa/server/src/hooks/api/automations-rules/automations-rules.js +3 -3
- package/.medusa/server/src/hooks/api/available-actions/actions.js +3 -3
- package/.medusa/server/src/hooks/api/available-events/events.js +3 -3
- package/.medusa/server/src/hooks/api/available-triggers/triggers.js +3 -3
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/base-action-handler.js +32 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/email-action-handler.js +71 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/index.js +10 -0
- package/.medusa/server/src/modules/mpn-automation/actions-handlers/slack-action-handler.js +43 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127115228.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127193345.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251127195615.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251130144047.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251207172856.js +24 -0
- package/.medusa/server/src/modules/mpn-automation/migrations/Migration20251208090654.js +14 -0
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule.js +3 -2
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_rule_value.js +3 -4
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_state.js +2 -3
- package/.medusa/server/src/modules/mpn-automation/models/mpn_automation_trigger.js +11 -6
- package/.medusa/server/src/modules/mpn-automation/models/npm_automation_action.js +1 -1
- package/.medusa/server/src/modules/mpn-automation/services/service.js +77 -16
- package/.medusa/server/src/modules/mpn-automation/types/action-handler.js +3 -0
- package/.medusa/server/src/modules/mpn-automation/types/index.js +20 -0
- package/.medusa/server/src/modules/mpn-automation/{interfaces.js → types/interfaces.js} +1 -1
- package/.medusa/server/src/modules/mpn-automation/types/types.js +193 -0
- package/.medusa/server/src/providers/slack/index.js +8 -0
- package/.medusa/server/src/providers/slack/service.js +99 -0
- package/.medusa/server/src/subscribers/inventory-item-updated.js +1 -1
- package/.medusa/server/src/subscribers/inventory-level-updated.js +6 -5
- package/.medusa/server/src/subscribers/inventory-reservation-item-updated.js +1 -1
- package/.medusa/server/src/subscribers/mpn.automation.action.email.executed.js +6 -5
- package/.medusa/server/src/subscribers/mpn.automation.action.slack.executed.js +43 -0
- package/.medusa/server/src/subscribers/order-completed.js +2 -2
- package/.medusa/server/src/subscribers/order-placed.js +2 -2
- package/.medusa/server/src/subscribers/payment-captured.js +2 -2
- package/.medusa/server/src/utils/index.js +1 -1
- package/.medusa/server/src/utils/plugins.js +4 -2
- package/.medusa/server/src/utils/types/index.js +3 -3
- package/.medusa/server/src/utils/validate-rules.js +1 -1
- package/.medusa/server/src/workflows/inventory/get-inventory-level-by-id.js +1 -1
- package/.medusa/server/src/workflows/inventory/steps/get-inventory-level-by-id.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/create-automation.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/delete-automation.js +14 -0
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-actions.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/edit-automation-rules.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/edit-automation.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/index.js +3 -1
- package/.medusa/server/src/workflows/mpn-automation/run-automation.js +32 -25
- package/.medusa/server/src/workflows/mpn-automation/save-automation-state.js +16 -0
- package/.medusa/server/src/workflows/mpn-automation/send-email-action.js +1 -1
- package/.medusa/server/src/workflows/mpn-automation/send-slack-action.js +69 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/create-automation.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/delete-automation.js +14 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-actions.js +4 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation-rules.js +11 -7
- package/.medusa/server/src/workflows/mpn-automation/steps/edit-automation.js +2 -2
- package/.medusa/server/src/workflows/mpn-automation/steps/index.js +3 -1
- package/.medusa/server/src/workflows/mpn-automation/steps/retrieve-automation-triggers-by-event.js +2 -4
- package/.medusa/server/src/workflows/mpn-automation/steps/run-automation-actions.js +39 -50
- package/.medusa/server/src/workflows/mpn-automation/steps/save-automation-state.js +40 -0
- package/.medusa/server/src/workflows/mpn-automation/steps/validate-automation-triggers.js +8 -6
- package/.medusa/server/src/workflows/mpn-automation/validate-automation-triggers-by-event.js +6 -6
- package/.medusa/server/src/workflows/notifications/index.js +1 -1
- package/.medusa/server/src/workflows/notifications/send-email.js +1 -1
- package/.medusa/server/src/workflows/notifications/send-slack.js +44 -0
- package/.medusa/server/src/workflows/notifications/steps/send-email.js +6 -3
- package/.medusa/server/src/workflows/notifications/steps/send-slack.js +74 -0
- package/.medusa/server/src/workflows/steps/log-step.js +1 -1
- package/README.md +22 -11
- package/package.json +4 -2
- package/.medusa/server/src/modules/mpn-automation/types.js +0 -199
|
@@ -10,7 +10,9 @@ exports.editAutomationActionsStep = (0, workflows_sdk_1.createStep)("edit-automa
|
|
|
10
10
|
trigger_id: trigger_id,
|
|
11
11
|
});
|
|
12
12
|
const existingActionIds = existingActions.map((action) => action.id);
|
|
13
|
-
const incomingActionIds = actions
|
|
13
|
+
const incomingActionIds = actions
|
|
14
|
+
.filter((action) => action.id)
|
|
15
|
+
.map((action) => action.id);
|
|
14
16
|
// Find actions to delete (existing but not in new data)
|
|
15
17
|
const actionsToDelete = existingActionIds.filter((id) => !incomingActionIds.includes(id));
|
|
16
18
|
// Delete actions that are no longer in the data
|
|
@@ -48,4 +50,4 @@ exports.editAutomationActionsStep = (0, workflows_sdk_1.createStep)("edit-automa
|
|
|
48
50
|
}));
|
|
49
51
|
return new workflows_sdk_1.StepResponse(updatedActions, updatedActions);
|
|
50
52
|
});
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2VkaXQtYXV0b21hdGlvbi1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUUxQyxvRUFBdUU7QUFRMUQsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLDBCQUFVLEVBQ2pELHlCQUF5QixFQUN6QixLQUFLLEVBQ0gsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFrQyxFQUN2RCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUN4QixTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFxQixDQUFDLENBQUE7SUFFMUMsd0NBQXdDO0lBQ3hDLE1BQU0sZUFBZSxHQUNuQixNQUFNLG9CQUFvQixDQUFDLHdCQUF3QixDQUFDO1FBQ2xELFVBQVUsRUFBRSxVQUFVO0tBQ3ZCLENBQUMsQ0FBQTtJQUVKLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FDM0MsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQzNCLENBQUE7SUFDRCxNQUFNLGlCQUFpQixHQUFHLE9BQU87U0FDOUIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQzdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRTdCLHdEQUF3RDtJQUN4RCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQzlDLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDaEQsQ0FBQTtJQUVELGdEQUFnRDtJQUNoRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDL0IsTUFBTSxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FDbkQsZUFBZSxDQUNoQixDQUFBO0lBQ0gsQ0FBQztJQUVELDJCQUEyQjtJQUMzQixNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzNCLElBQUksTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2YseUJBQXlCO1lBQ3pCLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQ3pDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQy9CLENBQUE7WUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0JBQWtCLE1BQU0sQ0FBQyxFQUFFLGlCQUFpQixDQUM3QyxDQUFBO1lBQ0gsQ0FBQztZQUVELHlCQUF5QjtZQUN6QixNQUFNLGFBQWEsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQywwQkFBMEIsQ0FDbkQ7Z0JBQ0U7b0JBQ0UsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztvQkFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2lCQUN0QjthQUNGLENBQ0YsQ0FBQTtZQUVILE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pCLENBQUM7YUFBTSxDQUFDO1lBQ04sb0JBQW9CO1lBQ3BCLE1BQU0sVUFBVSxHQUFHO2dCQUNqQixVQUFVLEVBQUUsVUFBVTtnQkFDdEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07YUFDdEIsQ0FBQTtZQUNELE1BQU0sU0FBUyxHQUNiLE1BQU0sb0JBQW9CLENBQUMsMEJBQTBCLENBQ25ELENBQUMsVUFBVSxDQUFDLENBQ2IsQ0FBQTtZQUVILE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFBO0FBQ3pELENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -12,7 +12,9 @@ exports.editAutomationRulesStep = (0, workflows_sdk_1.createStep)("edit-automati
|
|
|
12
12
|
relations: ["rule_values"],
|
|
13
13
|
});
|
|
14
14
|
const existingRuleIds = existingRules.map((rule) => rule.id);
|
|
15
|
-
const incomingRuleIds = rules
|
|
15
|
+
const incomingRuleIds = rules
|
|
16
|
+
.filter((rule) => rule.id)
|
|
17
|
+
.map((rule) => rule.id);
|
|
16
18
|
// Find rules to delete (existing but not in new data)
|
|
17
19
|
const rulesToDelete = existingRuleIds.filter((id) => !incomingRuleIds.includes(id));
|
|
18
20
|
// Delete rules that are no longer in the data
|
|
@@ -46,19 +48,20 @@ exports.editAutomationRulesStep = (0, workflows_sdk_1.createStep)("edit-automati
|
|
|
46
48
|
await mpnAutomationService.deleteMpnAutomationRuleValues(valuesToDelete);
|
|
47
49
|
}
|
|
48
50
|
// Update or create rule values
|
|
49
|
-
if (rule.rule_values &&
|
|
51
|
+
if (rule.rule_values &&
|
|
52
|
+
rule.rule_values.length > 0) {
|
|
50
53
|
const valuesToUpdate = rule.rule_values.filter((v) => v.id);
|
|
51
54
|
const valuesToCreate = rule.rule_values.filter((v) => !v.id);
|
|
52
55
|
if (valuesToUpdate.length > 0) {
|
|
53
56
|
await mpnAutomationService.updateMpnAutomationRuleValues(valuesToUpdate.map((value) => ({
|
|
54
57
|
id: value.id,
|
|
55
|
-
value: value.value
|
|
58
|
+
value: value.value,
|
|
56
59
|
})));
|
|
57
60
|
}
|
|
58
61
|
if (valuesToCreate.length > 0) {
|
|
59
62
|
await mpnAutomationService.createMpnAutomationRuleValues(valuesToCreate.map((value) => ({
|
|
60
63
|
rule_id: rule.id,
|
|
61
|
-
value: value.value
|
|
64
|
+
value: value.value,
|
|
62
65
|
})));
|
|
63
66
|
}
|
|
64
67
|
}
|
|
@@ -73,10 +76,11 @@ exports.editAutomationRulesStep = (0, workflows_sdk_1.createStep)("edit-automati
|
|
|
73
76
|
};
|
|
74
77
|
const newRule = await mpnAutomationService.createMpnAutomationRules([ruleData]);
|
|
75
78
|
// Create rule values if they exist
|
|
76
|
-
if (rule?.rule_values &&
|
|
79
|
+
if (rule?.rule_values &&
|
|
80
|
+
rule?.rule_values.length > 0) {
|
|
77
81
|
await mpnAutomationService.createMpnAutomationRuleValues(rule.rule_values.map((value) => ({
|
|
78
82
|
rule_id: newRule[0].id,
|
|
79
|
-
value: value.value
|
|
83
|
+
value: value.value,
|
|
80
84
|
})));
|
|
81
85
|
}
|
|
82
86
|
return newRule[0];
|
|
@@ -84,4 +88,4 @@ exports.editAutomationRulesStep = (0, workflows_sdk_1.createStep)("edit-automati
|
|
|
84
88
|
}));
|
|
85
89
|
return new workflows_sdk_1.StepResponse(updatedRules, updatedRules);
|
|
86
90
|
});
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9lZGl0LWF1dG9tYXRpb24tcnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBRTFDLG9FQUF1RTtBQVExRCxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDSCxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWdDLEVBQ25ELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQTtJQUUxQyxzQ0FBc0M7SUFDdEMsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUMsc0JBQXNCLENBQy9DO1FBQ0UsVUFBVSxFQUFFLFVBQVU7S0FDdkIsRUFDRDtRQUNFLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUMzQixDQUNGLENBQUE7SUFFSCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUN2QyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDdkIsQ0FBQTtJQUNELE1BQU0sZUFBZSxHQUFHLEtBQUs7U0FDMUIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ3pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRXpCLHNEQUFzRDtJQUN0RCxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUMxQyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUM5QyxDQUFBO0lB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
|
|
@@ -13,8 +13,8 @@ exports.editAutomationStep = (0, workflows_sdk_1.createStep)("edit-automation",
|
|
|
13
13
|
event_name: item.event_name,
|
|
14
14
|
interval_minutes: item.interval_minutes,
|
|
15
15
|
active: item.active,
|
|
16
|
-
channels: item.channels
|
|
16
|
+
channels: item.channels,
|
|
17
17
|
})));
|
|
18
18
|
return new workflows_sdk_1.StepResponse(automation, automation);
|
|
19
19
|
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1hdXRvbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9lZGl0LWF1dG9tYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBRTFDLG9FQUF1RTtBQU8xRCxRQUFBLGtCQUFrQixHQUFHLElBQUEsMEJBQVUsRUFDMUMsaUJBQWlCLEVBQ2pCLEtBQUssRUFDSCxFQUFFLEtBQUssRUFBMkIsRUFDbEMsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBcUIsQ0FBQyxDQUFBO0lBRTFDLE1BQU0sVUFBVSxHQUNkLE1BQU0sb0JBQW9CLENBQUMsMkJBQTJCLENBQ3BELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkIsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1FBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1FBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtRQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7UUFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtRQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO0tBQ3hCLENBQUMsQ0FBQyxDQUNKLENBQUE7SUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUE7QUFDakQsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -21,4 +21,6 @@ __exportStar(require("./create-automation"), exports);
|
|
|
21
21
|
__exportStar(require("./edit-automation"), exports);
|
|
22
22
|
__exportStar(require("./edit-automation-rules"), exports);
|
|
23
23
|
__exportStar(require("./edit-automation-actions"), exports);
|
|
24
|
-
|
|
24
|
+
__exportStar(require("./delete-automation"), exports);
|
|
25
|
+
__exportStar(require("./save-automation-state"), exports);
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL21wbi1hdXRvbWF0aW9uL3N0ZXBzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBdUQ7QUFDdkQsaUVBQThDO0FBQzlDLDJEQUF3QztBQUN4QyxzREFBbUM7QUFDbkMsb0RBQWlDO0FBQ2pDLDBEQUF1QztBQUN2Qyw0REFBeUM7QUFDekMsc0RBQW1DO0FBQ25DLDBEQUF1QyJ9
|
package/.medusa/server/src/workflows/mpn-automation/steps/retrieve-automation-triggers-by-event.js
CHANGED
|
@@ -14,7 +14,6 @@ exports.getAutomationTriggersByEventStepId = "get-automation-triggers-by-event";
|
|
|
14
14
|
* })
|
|
15
15
|
*/
|
|
16
16
|
exports.getAutomationTriggersByEventStep = (0, workflows_sdk_1.createStep)(exports.getAutomationTriggersByEventStepId, async (input, { container }) => {
|
|
17
|
-
// Use the main module service
|
|
18
17
|
const automationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
19
18
|
// Retrieve triggers for the given event that are active and have the specified type
|
|
20
19
|
const triggers = await automationService.listMpnAutomationTriggers({
|
|
@@ -35,7 +34,6 @@ exports.getAutomationTriggersByEventStep = (0, workflows_sdk_1.createStep)(expor
|
|
|
35
34
|
trigger_type: trigger.trigger_type,
|
|
36
35
|
event_name: trigger.event_name,
|
|
37
36
|
interval_minutes: trigger.interval_minutes,
|
|
38
|
-
last_run_at: trigger.last_run_at,
|
|
39
37
|
active: trigger.active,
|
|
40
38
|
channels: trigger.channels,
|
|
41
39
|
metadata: trigger.metadata,
|
|
@@ -54,9 +52,9 @@ exports.getAutomationTriggersByEventStep = (0, workflows_sdk_1.createStep)(expor
|
|
|
54
52
|
actions: (trigger.actions || []).map((action) => ({
|
|
55
53
|
id: action.id,
|
|
56
54
|
action_type: action.action_type,
|
|
57
|
-
config: action.config
|
|
55
|
+
config: action.config,
|
|
58
56
|
})),
|
|
59
57
|
}));
|
|
60
58
|
return new workflows_sdk_1.StepResponse(triggersData, triggersData);
|
|
61
59
|
});
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcmV0cmlldmUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsb0VBQXVFO0FBWTFELFFBQUEsa0NBQWtDLEdBQzdDLGtDQUFrQyxDQUFBO0FBRXBDOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSxnQ0FBZ0MsR0FBRyxJQUFBLDBCQUFVLEVBQ3hELDBDQUFrQyxFQUNsQyxLQUFLLEVBQ0gsS0FBNEMsRUFDNUMsRUFBRSxTQUFTLEVBQUUsRUFDaUMsRUFBRTtJQUNoRCxNQUFNLGlCQUFpQixHQUNyQixTQUFTLENBQUMsT0FBTyxDQUNmLHNDQUFxQixDQUN0QixDQUFBO0lBRUgsb0ZBQW9GO0lBQ3BGLE1BQU0sUUFBUSxHQUNaLE1BQU0saUJBQWlCLENBQUMseUJBQXlCLENBQy9DO1FBQ0UsVUFBVSxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzNCLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUztRQUM3QixNQUFNLEVBQUUsSUFBSTtLQUNiLEVBQ0Q7UUFDRSxTQUFTLEVBQUU7WUFDVCxPQUFPO1lBQ1AsbUJBQW1CO1lBQ25CLFNBQVM7U0FDVjtLQUNGLENBQ0YsQ0FBQTtJQUVILE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1FBQ2QsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQTJCO1FBQ2pELFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1FBQzFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBR1Y7UUFDUixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBR1Y7UUFDUixLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBR1A7WUFDUixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDdkMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUdSO2FBQ1QsQ0FBQyxDQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7S0FDSixDQUFDLENBQUMsQ0FBQTtJQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQTtBQUNyRCxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runAutomationActionsStep = exports.runAutomationActionsStepId = void 0;
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
-
const utils_1 = require("@medusajs/
|
|
5
|
+
const utils_1 = require("@medusajs/utils");
|
|
6
|
+
const utils_2 = require("@medusajs/framework/utils");
|
|
6
7
|
exports.runAutomationActionsStepId = "run-automation-actions";
|
|
7
8
|
/**
|
|
8
9
|
* This step runs automation actions for all validated triggers by emitting events for each action type.
|
|
@@ -20,73 +21,61 @@ exports.runAutomationActionsStepId = "run-automation-actions";
|
|
|
20
21
|
* })
|
|
21
22
|
*/
|
|
22
23
|
exports.runAutomationActionsStep = (0, workflows_sdk_1.createStep)(exports.runAutomationActionsStepId, async (input, { container }) => {
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
24
|
+
const mpnAutomationService = container.resolve("mpnAutomation");
|
|
25
|
+
const logger = container.resolve(utils_2.ContainerRegistrationKeys.LOGGER);
|
|
26
|
+
const { validatedTriggers, context } = input;
|
|
27
|
+
if (!validatedTriggers ||
|
|
28
|
+
validatedTriggers.length === 0) {
|
|
26
29
|
return new workflows_sdk_1.StepResponse({
|
|
27
|
-
|
|
28
|
-
triggersCount: 0,
|
|
29
|
-
totalActionsExecuted: 0,
|
|
30
|
+
triggersExecuted: [],
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
|
-
const
|
|
33
|
-
|
|
33
|
+
const getActionExecutionResults = await Promise.all(validatedTriggers.map(async (validatedTrigger) => {
|
|
34
|
+
const isValid = validatedTrigger.isValid;
|
|
35
|
+
const trigger = validatedTrigger.trigger;
|
|
36
|
+
const actions = validatedTrigger.trigger.actions || [];
|
|
37
|
+
if (!isValid || !actions || actions.length === 0) {
|
|
34
38
|
return {
|
|
35
|
-
|
|
36
|
-
isValid
|
|
39
|
+
trigger,
|
|
40
|
+
isValid,
|
|
37
41
|
actionsExecuted: 0,
|
|
38
42
|
actions: [],
|
|
39
43
|
};
|
|
40
44
|
}
|
|
41
|
-
const executedActions = await Promise.all(
|
|
45
|
+
const executedActions = await Promise.all(actions.map(async (action) => {
|
|
42
46
|
try {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
console.warn(`Action ${action.id} has no action_type, skipping`);
|
|
46
|
-
return {
|
|
47
|
-
actionId: action.id,
|
|
48
|
-
actionType: actionType,
|
|
49
|
-
success: false,
|
|
50
|
-
};
|
|
47
|
+
if (!action.action_type) {
|
|
48
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Action type is required");
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
50
|
+
const actionHandler = mpnAutomationService.getActionHandler(action.action_type);
|
|
51
|
+
const getHandler = actionHandler?.handler;
|
|
52
|
+
const isEnabled = actionHandler?.enabled;
|
|
53
|
+
if (!getHandler) {
|
|
54
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" not found`);
|
|
55
|
+
}
|
|
56
|
+
if (!isEnabled) {
|
|
57
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Action handler for "${action.action_type}" is disabled`);
|
|
58
|
+
}
|
|
59
|
+
return await getHandler.executeAction({
|
|
60
|
+
container,
|
|
61
|
+
trigger,
|
|
62
|
+
action,
|
|
63
|
+
context,
|
|
64
|
+
eventName: `mpn.automation.action.${action.action_type}.executed`,
|
|
62
65
|
});
|
|
63
|
-
return {
|
|
64
|
-
actionId: action.id,
|
|
65
|
-
actionType: actionType,
|
|
66
|
-
success: true,
|
|
67
|
-
};
|
|
68
66
|
}
|
|
69
67
|
catch (error) {
|
|
70
|
-
|
|
71
|
-
return
|
|
72
|
-
actionId: action.id,
|
|
73
|
-
actionType: action.action_type,
|
|
74
|
-
success: false,
|
|
75
|
-
};
|
|
68
|
+
logger.info(error.message);
|
|
69
|
+
return error;
|
|
76
70
|
}
|
|
77
71
|
}));
|
|
78
72
|
return {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
actionsExecuted: executedActions.filter(a => a.success).length,
|
|
82
|
-
actions: executedActions,
|
|
73
|
+
trigger,
|
|
74
|
+
executedActions: executedActions,
|
|
83
75
|
};
|
|
84
76
|
}));
|
|
85
|
-
const totalActionsExecuted = results.reduce((sum, r) => sum + r.actionsExecuted, 0);
|
|
86
77
|
return new workflows_sdk_1.StepResponse({
|
|
87
|
-
|
|
88
|
-
triggersCount: validated.length,
|
|
89
|
-
totalActionsExecuted,
|
|
78
|
+
triggersExecuted: getActionExecutionResults,
|
|
90
79
|
});
|
|
91
80
|
});
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG9tYXRpb24tYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvcnVuLWF1dG9tYXRpb24tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsMkNBQTZDO0FBQzdDLHFEQUFxRTtBQXFCeEQsUUFBQSwwQkFBMEIsR0FDckMsd0JBQXdCLENBQUE7QUFFMUI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDVSxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsa0NBQTBCLEVBQzFCLEtBQUssRUFDSCxLQUFvQyxFQUNwQyxFQUFFLFNBQVMsRUFBRSxFQUdiLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUN4QixTQUFTLENBQUMsT0FBTyxDQUNmLGVBQWUsQ0FDaEIsQ0FBQTtJQUNILE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQzlCLGlDQUF5QixDQUFDLE1BQU0sQ0FDakMsQ0FBQTtJQUVELE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFNUMsSUFDRSxDQUFDLGlCQUFpQjtRQUNsQixpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUM5QixDQUFDO1FBQ0QsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2pELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUE7UUFDeEMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFBO1FBQ3hDLE1BQU0sT0FBTyxHQUNYLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFBO1FBRXhDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPO2dCQUNMLE9BQU87Z0JBQ1AsT0FBTztnQkFDUCxlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFBO1FBQ0gsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlCQUF5QixDQUMxQixDQUFBO2dCQUNILENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQ2pCLG9CQUFvQixDQUFDLGdCQUFnQixDQUNuQyxNQUFNLENBQUMsV0FBVyxDQUNuQixDQUFBO2dCQUVILE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxPQUFPLENBQUE7Z0JBQ3pDLE1BQU0sU0FBUyxHQUFHLGFBQWEsRUFBRSxPQUFPLENBQUE7Z0JBRXhDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFDM0IsdUJBQXVCLE1BQU0sQ0FBQyxXQUFXLGFBQWEsQ0FDdkQsQ0FBQTtnQkFDSCxDQUFDO2dCQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDZixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUMzQix1QkFBdUIsTUFBTSxDQUFDLFdBQVcsZUFBZSxDQUN6RCxDQUFBO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUM7b0JBQ3BDLFNBQVM7b0JBQ1QsT0FBTztvQkFDUCxNQUFNO29CQUNOLE9BQU87b0JBQ1AsU0FBUyxFQUFFLHlCQUF5QixNQUFNLENBQUMsV0FBVyxXQUFXO2lCQUNsRSxDQUFDLENBQUE7WUFDSixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFFMUIsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELE9BQU87WUFDTCxPQUFPO1lBQ1AsZUFBZSxFQUFFLGVBQWU7U0FDakMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixnQkFBZ0IsRUFBRSx5QkFBeUI7S0FDNUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveAutomationStateStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const mpn_automation_1 = require("../../../modules/mpn-automation");
|
|
6
|
+
exports.saveAutomationStateStep = (0, workflows_sdk_1.createStep)("save-automation-state", async ({ triggers, targetKey }, { container }) => {
|
|
7
|
+
const mpnAutomationService = container.resolve(mpn_automation_1.MPN_AUTOMATION_MODULE);
|
|
8
|
+
const dateNow = new Date();
|
|
9
|
+
if (!triggers || triggers.length === 0) {
|
|
10
|
+
return new workflows_sdk_1.StepResponse([], []);
|
|
11
|
+
}
|
|
12
|
+
const savedStates = await Promise.all(triggers.map(async (trigger) => {
|
|
13
|
+
const existingStates = await mpnAutomationService.listMpnAutomationStates({
|
|
14
|
+
trigger_id: trigger.trigger.id,
|
|
15
|
+
target_key: targetKey,
|
|
16
|
+
});
|
|
17
|
+
// Update existing state
|
|
18
|
+
if (existingStates.length > 0) {
|
|
19
|
+
const map = existingStates.map((state) => {
|
|
20
|
+
return {
|
|
21
|
+
id: state.id,
|
|
22
|
+
last_triggered_at: dateNow,
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
const updatedStates = await mpnAutomationService.updateMpnAutomationStates(map);
|
|
26
|
+
return updatedStates;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const data = {
|
|
30
|
+
trigger_id: trigger.trigger.id,
|
|
31
|
+
target_key: targetKey || null,
|
|
32
|
+
last_triggered_at: dateNow,
|
|
33
|
+
};
|
|
34
|
+
const newStates = await mpnAutomationService.createMpnAutomationStates([data]);
|
|
35
|
+
return newStates;
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
return new workflows_sdk_1.StepResponse(savedStates, savedStates);
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS1hdXRvbWF0aW9uLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9tcG4tYXV0b21hdGlvbi9zdGVwcy9zYXZlLWF1dG9tYXRpb24tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBRTFDLG9FQUF1RTtBQVExRCxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFDSCxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQWdDLEVBQ3JELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQTtJQUUxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO0lBRTFCLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbkMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7UUFDbEMsTUFBTSxjQUFjLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUMsdUJBQXVCLENBQ2hEO1lBQ0UsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixVQUFVLEVBQUUsU0FBUztTQUN0QixDQUNGLENBQUE7UUFFSCx3QkFBd0I7UUFDeEIsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDNUMsT0FBTztvQkFDTCxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ1osaUJBQWlCLEVBQUUsT0FBTztpQkFDM0IsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFBO1lBRUYsTUFBTSxhQUFhLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUMseUJBQXlCLENBQ2xELEdBQUcsQ0FDSixDQUFBO1lBRUgsT0FBTyxhQUFhLENBQUE7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksR0FBRztnQkFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5QixVQUFVLEVBQUUsU0FBUyxJQUFJLElBQUk7Z0JBQzdCLGlCQUFpQixFQUFFLE9BQU87YUFDM0IsQ0FBQTtZQUVELE1BQU0sU0FBUyxHQUNiLE1BQU0sb0JBQW9CLENBQUMseUJBQXlCLENBQ2xELENBQUMsSUFBSSxDQUFDLENBQ1AsQ0FBQTtZQUVILE9BQU8sU0FBUyxDQUFBO1FBQ2xCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0FBQ25ELENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -15,15 +15,17 @@ exports.validateAutomationTriggersStepId = "validate-automation-triggers";
|
|
|
15
15
|
*/
|
|
16
16
|
exports.validateAutomationTriggersStep = (0, workflows_sdk_1.createStep)(exports.validateAutomationTriggersStepId, async (input) => {
|
|
17
17
|
const { triggers, context } = input;
|
|
18
|
-
const validated = triggers
|
|
18
|
+
const validated = triggers
|
|
19
|
+
.map((trigger) => {
|
|
19
20
|
// Validate rules for context
|
|
20
|
-
const
|
|
21
|
+
const rules = trigger.rules || [];
|
|
22
|
+
const isValid = (0, validate_rules_1.validateRulesForContext)(rules, context);
|
|
21
23
|
return {
|
|
22
|
-
isValid,
|
|
23
24
|
trigger,
|
|
24
|
-
|
|
25
|
+
isValid,
|
|
25
26
|
};
|
|
26
|
-
})
|
|
27
|
+
})
|
|
28
|
+
.filter((trigger) => trigger.isValid);
|
|
27
29
|
return new workflows_sdk_1.StepResponse(validated, validated);
|
|
28
30
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vc3RlcHMvdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFDMUMsa0VBQXVFO0FBUTFELFFBQUEsZ0NBQWdDLEdBQzNDLDhCQUE4QixDQUFBO0FBRWhDOzs7Ozs7OztHQVFHO0FBQ1UsUUFBQSw4QkFBOEIsR0FBRyxJQUFBLDBCQUFVLEVBQ3RELHdDQUFnQyxFQUNoQyxLQUFLLEVBQ0gsS0FBMEMsRUFDZCxFQUFFO0lBQzlCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFBO0lBRW5DLE1BQU0sU0FBUyxHQUFHLFFBQVE7U0FDdkIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZiw2QkFBNkI7UUFDN0IsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBQSx3Q0FBdUIsRUFDckMsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO1FBRUQsT0FBTztZQUNMLE9BQU87WUFDUCxPQUFPO1NBQ1IsQ0FBQTtJQUNILENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRTVDLE9BQU8sSUFBSSw0QkFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQTtBQUMvQyxDQUFDLENBQ0YsQ0FBQSJ9
|
package/.medusa/server/src/workflows/mpn-automation/validate-automation-triggers-by-event.js
CHANGED
|
@@ -21,18 +21,18 @@ exports.validateAutomationTriggersByEventWorkflowId = "validate-automation-trigg
|
|
|
21
21
|
*/
|
|
22
22
|
exports.validateAutomationTriggersByEventWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.validateAutomationTriggersByEventWorkflowId, (input) => {
|
|
23
23
|
// Retrieve triggers for the event
|
|
24
|
-
const
|
|
24
|
+
const getTriggers = (0, retrieve_automation_triggers_by_event_1.getAutomationTriggersByEventStep)({
|
|
25
25
|
eventName: input.eventName,
|
|
26
26
|
eventType: input.eventType,
|
|
27
27
|
});
|
|
28
28
|
// Validate all triggers against context
|
|
29
|
-
const
|
|
30
|
-
triggers:
|
|
29
|
+
const getValidatedTriggers = (0, validate_automation_triggers_1.validateAutomationTriggersStep)({
|
|
30
|
+
triggers: getTriggers || [],
|
|
31
31
|
context: input.context,
|
|
32
32
|
});
|
|
33
33
|
return new workflows_sdk_1.WorkflowResponse({
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
triggers: getTriggers,
|
|
35
|
+
triggersValidated: getValidatedTriggers,
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvbXBuLWF1dG9tYXRpb24vdmFsaWRhdGUtYXV0b21hdGlvbi10cmlnZ2Vycy1ieS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMseUdBQWdHO0FBQ2hHLHVGQUFxRjtBQXNCeEUsUUFBQSwyQ0FBMkMsR0FDdEQsdUNBQXVDLENBQUE7QUFFekM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEseUNBQXlDLEdBQ3BELElBQUEsOEJBQWMsRUFDWixtREFBMkMsRUFDM0MsQ0FDRSxLQUFtRSxFQUNuRSxFQUFFO0lBQ0Ysa0NBQWtDO0lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUEsd0VBQWdDLEVBQUM7UUFDbkQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1FBQzFCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDLENBQUE7SUFFRix3Q0FBd0M7SUFDeEMsTUFBTSxvQkFBb0IsR0FDeEIsSUFBQSw2REFBOEIsRUFBQztRQUM3QixRQUFRLEVBQUUsV0FBVyxJQUFJLEVBQUU7UUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQ3ZCLENBQUMsQ0FBQTtJQUVKLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixRQUFRLEVBQUUsV0FBVztRQUNyQixpQkFBaUIsRUFBRSxvQkFBb0I7S0FDeEMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -14,5 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./send-
|
|
17
|
+
__exportStar(require("./send-slack"), exports);
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL25vdGlmaWNhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE0QiJ9
|
|
@@ -48,4 +48,4 @@ exports.sendEmailWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendEmai
|
|
|
48
48
|
});
|
|
49
49
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
50
50
|
});
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkwQztBQUMxQyxtREFBa0Q7QUFnQnJDLFFBQUEsbUJBQW1CLEdBQUcsWUFBWSxDQUFBO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNVLFFBQUEsaUJBQWlCLEdBQUcsSUFBQSw4QkFBYyxFQUM3QywyQkFBbUIsRUFDbkIsQ0FBQyxLQUEyQyxFQUFFLEVBQUU7SUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSwwQkFBYSxFQUFDO1FBQzNCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtRQUN4QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNyQyxDQUFDLENBQ0YsQ0FBQSJ9
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSlackWorkflow = exports.sendSlackWorkflowId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const send_slack_1 = require("./steps/send-slack");
|
|
6
|
+
exports.sendSlackWorkflowId = "send-slack";
|
|
7
|
+
/**
|
|
8
|
+
* Universal workflow that sends a slack notification.
|
|
9
|
+
*
|
|
10
|
+
* This workflow can be used independently or as part of automation workflows.
|
|
11
|
+
* It's not tied to automation system and can be used anywhere in the application.
|
|
12
|
+
*
|
|
13
|
+
* Configuration:
|
|
14
|
+
* - templateName: Required - Name of the slack template
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Standalone usage
|
|
19
|
+
* const { result } = await sendSlackWorkflow(container).run({
|
|
20
|
+
* input: {
|
|
21
|
+
* settings: {
|
|
22
|
+
* templateName: "inventory-level",
|
|
23
|
+
* to: "admin@example.com",
|
|
24
|
+
* locale: "pl"
|
|
25
|
+
* },
|
|
26
|
+
* templateData: {
|
|
27
|
+
* inventory_level: {
|
|
28
|
+
* id: "il_123",
|
|
29
|
+
* stocked_quantity: 5
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
exports.sendSlackWorkflow = (0, workflows_sdk_1.createWorkflow)(exports.sendSlackWorkflowId, (input) => {
|
|
37
|
+
const result = (0, send_slack_1.sendSlackStep)({
|
|
38
|
+
settings: input.settings,
|
|
39
|
+
context: input.context,
|
|
40
|
+
eventName: input.eventName,
|
|
41
|
+
});
|
|
42
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkwQztBQUMxQyxtREFBa0Q7QUFjckMsUUFBQSxtQkFBbUIsR0FBRyxZQUFZLENBQUE7QUFFL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLElBQUEsOEJBQWMsRUFDN0MsMkJBQW1CLEVBQ25CLENBQUMsS0FBMkMsRUFBRSxFQUFFO0lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUEsMEJBQWEsRUFBQztRQUMzQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztLQUMzQixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDckMsQ0FBQyxDQUNGLENBQUEifQ==
|
|
@@ -58,7 +58,7 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
58
58
|
const to = settings.to;
|
|
59
59
|
const locale = settings.locale || "pl";
|
|
60
60
|
const customSubject = settings.subject;
|
|
61
|
-
const resourceId = settings.resourceId ||
|
|
61
|
+
const resourceId = settings.resourceId || "unknown";
|
|
62
62
|
const resourceType = settings.resourceType || "email.notification";
|
|
63
63
|
const channel = settings.channel || "email";
|
|
64
64
|
const triggerType = settings.triggerType || "system";
|
|
@@ -76,7 +76,10 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
76
76
|
// config.customTemplate should be a relative path like "../emails/pos-email-inventory"
|
|
77
77
|
// or absolute path from project root like "src/emails/pos-email-inventory"
|
|
78
78
|
const customTemplateModule = await import(settings.customTemplate);
|
|
79
|
-
customTemplateFunction =
|
|
79
|
+
customTemplateFunction =
|
|
80
|
+
customTemplateModule.default ||
|
|
81
|
+
customTemplateModule.createCustomTemplate ||
|
|
82
|
+
customTemplateModule.createTemplate;
|
|
80
83
|
if (!customTemplateFunction) {
|
|
81
84
|
console.warn(`Custom template module from ${settings.customTemplate} does not export a default function or createCustomTemplate/createTemplate`);
|
|
82
85
|
}
|
|
@@ -116,4 +119,4 @@ exports.sendEmailStep = (0, workflows_sdk_1.createStep)(exports.sendEmailStepId,
|
|
|
116
119
|
});
|
|
117
120
|
}
|
|
118
121
|
});
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLWVtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFFQUcwQztBQUMxQyxxREFBbUQ7QUFDbkQseUZBQTZGO0FBQzdGLCtFQUFvRjtBQWdDdkUsUUFBQSxlQUFlLEdBQUcsWUFBWSxDQUFBO0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNVLFFBQUEsYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFDckMsdUJBQWUsRUFDZixLQUFLLEVBQ0gsS0FBeUIsRUFDekIsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFbkQsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0IsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsb0NBQW9DO1NBQzVDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLDRDQUE0QztTQUNwRCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUNqRCxlQUFPLENBQUMsWUFBWSxDQUNyQixDQUFBO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBZ0IsRUFDcEMsU0FBUyxFQUNULDZDQUE2QyxDQUM5QyxDQUFBO1FBRUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxD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
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSlackStep = exports.sendSlackStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
exports.sendSlackStepId = "send-slack";
|
|
7
|
+
/**
|
|
8
|
+
* Universal step that sends a slack notification.
|
|
9
|
+
*
|
|
10
|
+
* This step can be used independently or as part of automation workflows.
|
|
11
|
+
*
|
|
12
|
+
* Configuration:
|
|
13
|
+
* - templateName: Required - Name of the slack template to use
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // Standalone usage
|
|
18
|
+
* const result = await sendSlackStep({
|
|
19
|
+
* settings: {
|
|
20
|
+
* templateName: "inventory-level",
|
|
21
|
+
* to: "admin@example.com",
|
|
22
|
+
* locale: "pl"
|
|
23
|
+
* },
|
|
24
|
+
* templateData: {
|
|
25
|
+
* inventory_level: { ... }
|
|
26
|
+
* }
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
exports.sendSlackStep = (0, workflows_sdk_1.createStep)(exports.sendSlackStepId, async (input, { container }) => {
|
|
31
|
+
const { settings, context, eventName } = input;
|
|
32
|
+
// Validate required config
|
|
33
|
+
if (!settings.template) {
|
|
34
|
+
return new workflows_sdk_1.StepResponse({
|
|
35
|
+
success: false,
|
|
36
|
+
error: "template is required in config",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const notificationModuleService = container.resolve(utils_1.Modules.NOTIFICATION);
|
|
41
|
+
const template = settings.template;
|
|
42
|
+
const to = settings.to || "slack-channel";
|
|
43
|
+
const locale = settings.locale || "pl";
|
|
44
|
+
const customSubject = settings.subject;
|
|
45
|
+
const resourceId = settings.resourceId || "unknown";
|
|
46
|
+
const resourceType = settings.resourceType || "email.notification";
|
|
47
|
+
const channel = settings.channel || "slack";
|
|
48
|
+
const triggerType = settings.triggerType || "system";
|
|
49
|
+
// Send notification
|
|
50
|
+
const notificationResult = await notificationModuleService.createNotifications({
|
|
51
|
+
to: to,
|
|
52
|
+
channel: channel,
|
|
53
|
+
template: template,
|
|
54
|
+
trigger_type: triggerType,
|
|
55
|
+
resource_id: resourceId,
|
|
56
|
+
resource_type: eventName,
|
|
57
|
+
data: {
|
|
58
|
+
...context,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
return new workflows_sdk_1.StepResponse({
|
|
62
|
+
success: true,
|
|
63
|
+
notificationId: notificationResult?.id,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error(`Failed to send slack:`, error);
|
|
68
|
+
return new workflows_sdk_1.StepResponse({
|
|
69
|
+
success: false,
|
|
70
|
+
error: error?.message || "Unknown error occurred",
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1zbGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvbm90aWZpY2F0aW9ucy9zdGVwcy9zZW5kLXNsYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUMxQyxxREFBbUQ7QUF1QnRDLFFBQUEsZUFBZSxHQUFHLFlBQVksQ0FBQTtBQUUzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNVLFFBQUEsYUFBYSxHQUFHLElBQUEsMEJBQVUsRUFDckMsdUJBQWUsRUFDZixLQUFLLEVBQ0gsS0FBeUIsRUFDekIsRUFBRSxTQUFTLEVBQUUsRUFDK0IsRUFBRTtJQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUE7SUFFOUMsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsZ0NBQWdDO1NBQ3hDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQ2pELGVBQU8sQ0FBQyxZQUFZLENBQ3JCLENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFBO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxFQUFFLElBQUksZUFBZSxDQUFBO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFBO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDdEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsSUFBSSxTQUFTLENBQUE7UUFDbkQsTUFBTSxZQUFZLEdBQ2hCLFFBQVEsQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQUE7UUFDL0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUE7UUFDM0MsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUE7UUFFcEQsb0JBQW9CO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUMsbUJBQW1CLENBQ2pEO1lBQ0UsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixZQUFZLEVBQUUsV0FBVztZQUN6QixXQUFXLEVBQUUsVUFBVTtZQUN2QixhQUFhLEVBQUUsU0FBUztZQUN4QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxPQUFPO2FBQ1g7U0FDRixDQUNGLENBQUE7UUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFO1NBQ3ZDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDN0MsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSx3QkFBd0I7U0FDbEQsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FDRixDQUFBIn0=
|
|
@@ -13,4 +13,4 @@ const logStep = (0, workflows_sdk_1.createStep)({
|
|
|
13
13
|
});
|
|
14
14
|
});
|
|
15
15
|
exports.logStep = logStep;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2xvZy1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUUxQyxNQUFNLE9BQU8sR0FBRyxJQUFBLDBCQUFVLEVBQ3hCO0lBQ0UsSUFBSSxFQUFFLFVBQVU7Q0FDakIsRUFDRCxVQUFVLEtBQVU7SUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFdkQsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsS0FBSyxFQUFFLEtBQUs7S0FDYixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQTtBQUVRLDBCQUFPIn0=
|