medusa-contact-us 0.0.11 → 0.0.20

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 (48) hide show
  1. package/.medusa/server/src/admin/index.js +4 -494
  2. package/.medusa/server/src/admin/index.mjs +6 -496
  3. package/.medusa/server/src/api/admin/contact-email-subscriptions/route.js +3 -3
  4. package/.medusa/server/src/api/admin/contact-requests/[id]/route.js +10 -34
  5. package/.medusa/server/src/api/admin/contact-requests/[id]/status/route.js +24 -0
  6. package/.medusa/server/src/api/admin/contact-requests/route.js +47 -11
  7. package/.medusa/server/src/api/admin/contact-requests/validators.js +22 -12
  8. package/.medusa/server/src/api/store/contact-email-subscriptions/route.js +3 -3
  9. package/.medusa/server/src/api/store/contact-email-subscriptions/validators.js +2 -2
  10. package/.medusa/server/src/api/store/contact-requests/route.js +4 -10
  11. package/.medusa/server/src/api/store/contact-requests/validators.js +4 -8
  12. package/.medusa/server/src/constants.js +10 -4
  13. package/.medusa/server/src/helpers/contact-request.js +52 -0
  14. package/.medusa/server/src/helpers/contact-subscription.js +15 -4
  15. package/.medusa/server/src/helpers/index.js +5 -4
  16. package/.medusa/server/src/index.js +16 -13
  17. package/.medusa/server/src/modules/contact-requests/index.js +4 -5
  18. package/.medusa/server/src/modules/contact-requests/migrations/Migration20241129163317.js +47 -0
  19. package/.medusa/server/src/modules/contact-requests/models/contact-request.js +4 -3
  20. package/.medusa/server/src/modules/contact-requests/service.js +191 -141
  21. package/.medusa/server/src/modules/contact-requests/utils/resolve-options.js +48 -0
  22. package/.medusa/server/src/modules/contact-subscriptions/index.js +4 -5
  23. package/.medusa/server/src/modules/contact-subscriptions/service.js +20 -12
  24. package/.medusa/server/src/types/contact-request.js +3 -0
  25. package/.medusa/server/src/types.js +1 -208
  26. package/.medusa/server/src/workflows/create-contact-request-workflow.js +13 -0
  27. package/.medusa/server/src/workflows/index.js +5 -5
  28. package/.medusa/server/src/workflows/steps/create-contact-request-step.js +3 -7
  29. package/.medusa/server/src/workflows/steps/resolve-status-transition-step.js +15 -0
  30. package/.medusa/server/src/workflows/steps/send-status-notification-step.js +56 -0
  31. package/.medusa/server/src/workflows/steps/update-contact-request-status-step.js +7 -7
  32. package/.medusa/server/src/workflows/update-contact-request-status-workflow.js +33 -0
  33. package/README.md +329 -211
  34. package/package.json +2 -2
  35. package/.medusa/server/src/api/admin/contact-requests/[id]/comments/route.js +0 -22
  36. package/.medusa/server/src/api/admin/plugin/route.js +0 -11
  37. package/.medusa/server/src/api/store/plugin/route.js +0 -11
  38. package/.medusa/server/src/helpers/__tests__/submit-contact-request.test.js +0 -125
  39. package/.medusa/server/src/helpers/submit-contact-request.js +0 -45
  40. package/.medusa/server/src/modules/contact-requests/migrations/Migration20241124090000.js +0 -51
  41. package/.medusa/server/src/modules/contact-requests/models/contact-request-comment.js +0 -11
  42. package/.medusa/server/src/plugin-options.js +0 -16
  43. package/.medusa/server/src/types/__tests__/contact-options.test.js +0 -83
  44. package/.medusa/server/src/utils/__tests__/payload-validator.test.js +0 -81
  45. package/.medusa/server/src/utils/payload.js +0 -127
  46. package/.medusa/server/src/workflows/create-contact-request.js +0 -30
  47. package/.medusa/server/src/workflows/steps/send-contact-notification-step.js +0 -48
  48. package/.medusa/server/src/workflows/update-contact-request-status.js +0 -32
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createContactRequestWorkflow = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const create_contact_request_step_1 = require("./steps/create-contact-request-step");
6
- const send_contact_notification_step_1 = require("./steps/send-contact-notification-step");
7
- exports.createContactRequestWorkflow = (0, workflows_sdk_1.createWorkflow)("contact-us-create-request", (input) => {
8
- const { request, options, statusOption } = (0, create_contact_request_step_1.createContactRequestStep)(input);
9
- (0, send_contact_notification_step_1.sendContactNotificationStep)({
10
- shouldSend: options.notifications.send_on_create,
11
- to: request.email,
12
- from: options.notifications.from_address,
13
- reply_to: options.notifications.reply_to,
14
- template: options.notifications.acknowledgement_template ??
15
- statusOption?.template,
16
- subject: statusOption?.label ??
17
- "We received your contact request",
18
- data: {
19
- request_id: request.id,
20
- status: request.status,
21
- submitted_at: request.created_at,
22
- payload: request.payload,
23
- },
24
- });
25
- return new workflows_sdk_1.WorkflowResponse({
26
- request,
27
- });
28
- });
29
- exports.default = exports.createContactRequestWorkflow;
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRhY3QtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY3JlYXRlLWNvbnRhY3QtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMEM7QUFFMUMscUZBQThFO0FBQzlFLDJGQUFvRjtBQU12RSxRQUFBLDRCQUE0QixHQUFHLElBQUEsOEJBQWMsRUFDeEQsMkJBQTJCLEVBQzNCLENBQUMsS0FBZ0MsRUFBZ0QsRUFBRTtJQUNqRixNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFBLHNEQUF3QixFQUFDLEtBQUssQ0FBQyxDQUFBO0lBRTFFLElBQUEsNERBQTJCLEVBQUM7UUFDMUIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYztRQUNoRCxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDakIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWTtRQUN4QyxRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRO1FBQ3hDLFFBQVEsRUFDTixPQUFPLENBQUMsYUFBYSxDQUFDLHdCQUF3QjtZQUM5QyxZQUFZLEVBQUUsUUFBUTtRQUN4QixPQUFPLEVBQ0wsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0NBQWtDO1FBQ3BDLElBQUksRUFBRTtZQUNKLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRTtZQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQ2hDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QjtLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixPQUFPO0tBQ1IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUE7QUFFRCxrQkFBZSxvQ0FBNEIsQ0FBQSJ9
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendContactNotificationStep = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const utils_1 = require("@medusajs/framework/utils");
6
- exports.sendContactNotificationStep = (0, workflows_sdk_1.createStep)("send-contact-notification", async (input, { container }) => {
7
- if (!input.shouldSend) {
8
- return new workflows_sdk_1.StepResponse({
9
- sent: false,
10
- skipped: true,
11
- });
12
- }
13
- let notificationService;
14
- try {
15
- notificationService = container.resolve(utils_1.Modules.NOTIFICATION);
16
- }
17
- catch (error) {
18
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Notification module is not configured.");
19
- }
20
- if (!notificationService) {
21
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Notification module is not available.");
22
- }
23
- const payload = {
24
- to: input.to,
25
- channel: "email",
26
- template: input.template,
27
- data: {
28
- subject: input.subject ?? "We received your request",
29
- ...(input.data ?? {}),
30
- ...(input.from ? { from: input.from } : {}),
31
- ...(input.reply_to ? { reply_to: input.reply_to } : {}),
32
- },
33
- };
34
- if (typeof notificationService.create === "function") {
35
- await notificationService.create(payload);
36
- }
37
- else if (typeof notificationService.createNotifications === "function") {
38
- await notificationService.createNotifications([payload]);
39
- }
40
- else {
41
- throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNEXPECTED_STATE, "Notification module does not support create/createNotifications.");
42
- }
43
- return new workflows_sdk_1.StepResponse({
44
- sent: true,
45
- skipped: false,
46
- });
47
- });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1jb250YWN0LW5vdGlmaWNhdGlvbi1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy9zZW5kLWNvbnRhY3Qtbm90aWZpY2F0aW9uLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBRzBDO0FBQzFDLHFEQUFnRTtBQW9CbkQsUUFBQSwyQkFBMkIsR0FBRyxJQUFBLDBCQUFVLEVBQ25ELDJCQUEyQixFQUMzQixLQUFLLEVBQ0gsS0FBbUMsRUFDbkMsRUFBRSxTQUFTLEVBQUUsRUFDeUMsRUFBRTtJQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO1lBQ3RCLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxtQkFBb0MsQ0FBQTtJQUV4QyxJQUFJLENBQUM7UUFDSCxtQkFBbUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUMvRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHdDQUF3QyxDQUN6QyxDQUFBO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHVDQUF1QyxDQUN4QyxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHO1FBQ2QsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ1osT0FBTyxFQUFFLE9BQU87UUFDaEIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLDBCQUEwQjtZQUNwRCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN4RDtLQUNGLENBQUE7SUFFRCxJQUFJLE9BQU8sbUJBQW1CLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3JELE1BQU0sbUJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzNDLENBQUM7U0FBTSxJQUFJLE9BQU8sbUJBQW1CLENBQUMsbUJBQW1CLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDekUsTUFBTSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDMUQsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQ2xDLGtFQUFrRSxDQUNuRSxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDO1FBQ3RCLElBQUksRUFBRSxJQUFJO1FBQ1YsT0FBTyxFQUFFLEtBQUs7S0FDZixDQUFDLENBQUE7QUFDSixDQUFDLENBQ0YsQ0FBQSJ9
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateContactRequestStatusWorkflow = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const send_contact_notification_step_1 = require("./steps/send-contact-notification-step");
6
- const update_contact_request_status_step_1 = require("./steps/update-contact-request-status-step");
7
- exports.updateContactRequestStatusWorkflow = (0, workflows_sdk_1.createWorkflow)("contact-us-update-status", (input) => {
8
- const { request, options, statusOption } = (0, update_contact_request_status_step_1.updateContactRequestStatusStep)(input);
9
- const isFinal = request.status === options.statuses.final;
10
- const shouldNotify = isFinal &&
11
- options.notifications.send_on_final_status &&
12
- (statusOption?.notify_customer ?? true);
13
- (0, send_contact_notification_step_1.sendContactNotificationStep)({
14
- shouldSend: shouldNotify,
15
- to: request.email,
16
- from: options.notifications.from_address,
17
- reply_to: options.notifications.reply_to,
18
- template: statusOption?.template ??
19
- options.notifications.final_status_template,
20
- subject: statusOption?.label ?? "Your contact request was updated",
21
- data: {
22
- request_id: request.id,
23
- status: request.status,
24
- updated_at: request.updated_at,
25
- },
26
- });
27
- return new workflows_sdk_1.WorkflowResponse({
28
- request,
29
- });
30
- });
31
- exports.default = exports.updateContactRequestStatusWorkflow;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvbnRhY3QtcmVxdWVzdC1zdGF0dXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3VwZGF0ZS1jb250YWN0LXJlcXVlc3Qtc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcwQztBQUUxQywyRkFBb0Y7QUFDcEYsbUdBQTJGO0FBRTlFLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSw4QkFBYyxFQUM5RCwwQkFBMEIsRUFDMUIsQ0FBQyxLQUErQixFQUFFLEVBQUU7SUFDbEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQ3RDLElBQUEsbUVBQThCLEVBQUMsS0FBSyxDQUFDLENBQUE7SUFFdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQTtJQUN6RCxNQUFNLFlBQVksR0FDaEIsT0FBTztRQUNQLE9BQU8sQ0FBQyxhQUFhLENBQUMsb0JBQW9CO1FBQzFDLENBQUMsWUFBWSxFQUFFLGVBQWUsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUV6QyxJQUFBLDREQUEyQixFQUFDO1FBQzFCLFVBQVUsRUFBRSxZQUFZO1FBQ3hCLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSztRQUNqQixJQUFJLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZO1FBQ3hDLFFBQVEsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVE7UUFDeEMsUUFBUSxFQUNOLFlBQVksRUFBRSxRQUFRO1lBQ3RCLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCO1FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxJQUFJLGtDQUFrQztRQUNsRSxJQUFJLEVBQUU7WUFDSixVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMvQjtLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixPQUFPO0tBQ1IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUNGLENBQUE7QUFFRCxrQkFBZSwwQ0FBa0MsQ0FBQSJ9