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.
- package/.medusa/server/src/admin/index.js +4 -494
- package/.medusa/server/src/admin/index.mjs +6 -496
- package/.medusa/server/src/api/admin/contact-email-subscriptions/route.js +3 -3
- package/.medusa/server/src/api/admin/contact-requests/[id]/route.js +10 -34
- package/.medusa/server/src/api/admin/contact-requests/[id]/status/route.js +24 -0
- package/.medusa/server/src/api/admin/contact-requests/route.js +47 -11
- package/.medusa/server/src/api/admin/contact-requests/validators.js +22 -12
- package/.medusa/server/src/api/store/contact-email-subscriptions/route.js +3 -3
- package/.medusa/server/src/api/store/contact-email-subscriptions/validators.js +2 -2
- package/.medusa/server/src/api/store/contact-requests/route.js +4 -10
- package/.medusa/server/src/api/store/contact-requests/validators.js +4 -8
- package/.medusa/server/src/constants.js +10 -4
- package/.medusa/server/src/helpers/contact-request.js +52 -0
- package/.medusa/server/src/helpers/contact-subscription.js +15 -4
- package/.medusa/server/src/helpers/index.js +5 -4
- package/.medusa/server/src/index.js +16 -13
- package/.medusa/server/src/modules/contact-requests/index.js +4 -5
- package/.medusa/server/src/modules/contact-requests/migrations/Migration20241129163317.js +47 -0
- package/.medusa/server/src/modules/contact-requests/models/contact-request.js +4 -3
- package/.medusa/server/src/modules/contact-requests/service.js +191 -141
- package/.medusa/server/src/modules/contact-requests/utils/resolve-options.js +48 -0
- package/.medusa/server/src/modules/contact-subscriptions/index.js +4 -5
- package/.medusa/server/src/modules/contact-subscriptions/service.js +20 -12
- package/.medusa/server/src/types/contact-request.js +3 -0
- package/.medusa/server/src/types.js +1 -208
- package/.medusa/server/src/workflows/create-contact-request-workflow.js +13 -0
- package/.medusa/server/src/workflows/index.js +5 -5
- package/.medusa/server/src/workflows/steps/create-contact-request-step.js +3 -7
- package/.medusa/server/src/workflows/steps/resolve-status-transition-step.js +15 -0
- package/.medusa/server/src/workflows/steps/send-status-notification-step.js +56 -0
- package/.medusa/server/src/workflows/steps/update-contact-request-status-step.js +7 -7
- package/.medusa/server/src/workflows/update-contact-request-status-workflow.js +33 -0
- package/README.md +329 -211
- package/package.json +2 -2
- package/.medusa/server/src/api/admin/contact-requests/[id]/comments/route.js +0 -22
- package/.medusa/server/src/api/admin/plugin/route.js +0 -11
- package/.medusa/server/src/api/store/plugin/route.js +0 -11
- package/.medusa/server/src/helpers/__tests__/submit-contact-request.test.js +0 -125
- package/.medusa/server/src/helpers/submit-contact-request.js +0 -45
- package/.medusa/server/src/modules/contact-requests/migrations/Migration20241124090000.js +0 -51
- package/.medusa/server/src/modules/contact-requests/models/contact-request-comment.js +0 -11
- package/.medusa/server/src/plugin-options.js +0 -16
- package/.medusa/server/src/types/__tests__/contact-options.test.js +0 -83
- package/.medusa/server/src/utils/__tests__/payload-validator.test.js +0 -81
- package/.medusa/server/src/utils/payload.js +0 -127
- package/.medusa/server/src/workflows/create-contact-request.js +0 -30
- package/.medusa/server/src/workflows/steps/send-contact-notification-step.js +0 -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
|