@reorderjs/reorder 1.0.1
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/scripts/reset-reorder-plugin-data.js +175 -0
- package/.medusa/server/src/admin/index.js +17889 -0
- package/.medusa/server/src/admin/index.mjs +17871 -0
- package/.medusa/server/src/admin/types/activity-log.js +10 -0
- package/.medusa/server/src/admin/types/analytics.js +17 -0
- package/.medusa/server/src/admin/types/cancellation.js +27 -0
- package/.medusa/server/src/admin/types/dunning.js +19 -0
- package/.medusa/server/src/admin/types/plan-offer.js +25 -0
- package/.medusa/server/src/admin/types/renewal.js +23 -0
- package/.medusa/server/src/admin/types/subscription.js +22 -0
- package/.medusa/server/src/api/admin/cancellations/[id]/apply-offer/route.js +30 -0
- package/.medusa/server/src/api/admin/cancellations/[id]/finalize/route.js +31 -0
- package/.medusa/server/src/api/admin/cancellations/[id]/reason/route.js +31 -0
- package/.medusa/server/src/api/admin/cancellations/[id]/route.js +20 -0
- package/.medusa/server/src/api/admin/cancellations/middlewares.js +55 -0
- package/.medusa/server/src/api/admin/cancellations/route.js +20 -0
- package/.medusa/server/src/api/admin/cancellations/utils.js +116 -0
- package/.medusa/server/src/api/admin/cancellations/validators.js +130 -0
- package/.medusa/server/src/api/admin/dunning/[id]/mark-recovered/route.js +27 -0
- package/.medusa/server/src/api/admin/dunning/[id]/mark-unrecovered/route.js +27 -0
- package/.medusa/server/src/api/admin/dunning/[id]/retry-now/route.js +28 -0
- package/.medusa/server/src/api/admin/dunning/[id]/retry-schedule/route.js +29 -0
- package/.medusa/server/src/api/admin/dunning/[id]/route.js +20 -0
- package/.medusa/server/src/api/admin/dunning/middlewares.js +60 -0
- package/.medusa/server/src/api/admin/dunning/route.js +20 -0
- package/.medusa/server/src/api/admin/dunning/utils.js +70 -0
- package/.medusa/server/src/api/admin/dunning/validators.js +81 -0
- package/.medusa/server/src/api/admin/orders/[id]/subscription-summary/route.js +10 -0
- package/.medusa/server/src/api/admin/orders/utils.js +8 -0
- package/.medusa/server/src/api/admin/plugin/route.js +7 -0
- package/.medusa/server/src/api/admin/renewals/[id]/approve-changes/route.js +27 -0
- package/.medusa/server/src/api/admin/renewals/[id]/force/route.js +30 -0
- package/.medusa/server/src/api/admin/renewals/[id]/reject-changes/route.js +27 -0
- package/.medusa/server/src/api/admin/renewals/[id]/route.js +10 -0
- package/.medusa/server/src/api/admin/renewals/middlewares.js +61 -0
- package/.medusa/server/src/api/admin/renewals/route.js +10 -0
- package/.medusa/server/src/api/admin/renewals/utils.js +60 -0
- package/.medusa/server/src/api/admin/renewals/validators.js +62 -0
- package/.medusa/server/src/api/admin/subscription-analytics/export/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-analytics/kpis/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-analytics/middlewares.js +45 -0
- package/.medusa/server/src/api/admin/subscription-analytics/rebuild/route.js +75 -0
- package/.medusa/server/src/api/admin/subscription-analytics/trends/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-analytics/utils.js +81 -0
- package/.medusa/server/src/api/admin/subscription-analytics/validators.js +76 -0
- package/.medusa/server/src/api/admin/subscription-logs/[id]/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-logs/middlewares.js +66 -0
- package/.medusa/server/src/api/admin/subscription-logs/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-logs/utils.js +84 -0
- package/.medusa/server/src/api/admin/subscription-logs/validators.js +32 -0
- package/.medusa/server/src/api/admin/subscription-offers/[id]/route.js +22 -0
- package/.medusa/server/src/api/admin/subscription-offers/[id]/toggle/route.js +17 -0
- package/.medusa/server/src/api/admin/subscription-offers/middlewares.js +58 -0
- package/.medusa/server/src/api/admin/subscription-offers/route.js +20 -0
- package/.medusa/server/src/api/admin/subscription-offers/utils.js +41 -0
- package/.medusa/server/src/api/admin/subscription-offers/validators.js +112 -0
- package/.medusa/server/src/api/admin/subscription-settings/middlewares.js +15 -0
- package/.medusa/server/src/api/admin/subscription-settings/route.js +33 -0
- package/.medusa/server/src/api/admin/subscription-settings/utils.js +109 -0
- package/.medusa/server/src/api/admin/subscription-settings/validators.js +74 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/cancel/route.js +18 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/logs/route.js +20 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/pause/route.js +18 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/resume/route.js +18 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/route.js +10 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/schedule-plan-change/route.js +26 -0
- package/.medusa/server/src/api/admin/subscriptions/[id]/update-shipping-address/route.js +27 -0
- package/.medusa/server/src/api/admin/subscriptions/middlewares.js +79 -0
- package/.medusa/server/src/api/admin/subscriptions/route.js +10 -0
- package/.medusa/server/src/api/admin/subscriptions/utils.js +42 -0
- package/.medusa/server/src/api/admin/subscriptions/validators.js +76 -0
- package/.medusa/server/src/api/middlewares.js +32 -0
- package/.medusa/server/src/api/store/carts/[id]/subscribe/route.js +18 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/[id]/cancellation/route.js +37 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/route.js +10 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/utils.js +104 -0
- package/.medusa/server/src/api/store/customers/me/subscriptions/validators.js +13 -0
- package/.medusa/server/src/api/store/plugin/route.js +7 -0
- package/.medusa/server/src/jobs/process-analytics-daily-snapshots.js +149 -0
- package/.medusa/server/src/jobs/process-cancellation-operational-metrics.js +102 -0
- package/.medusa/server/src/jobs/process-dunning-retries.js +249 -0
- package/.medusa/server/src/jobs/process-renewal-cycles.js +180 -0
- package/.medusa/server/src/links/cancellation-subscription.js +13 -0
- package/.medusa/server/src/links/renewal-order.js +12 -0
- package/.medusa/server/src/links/renewal-subscription.js +13 -0
- package/.medusa/server/src/links/subscription-cart.js +12 -0
- package/.medusa/server/src/links/subscription-customer.js +13 -0
- package/.medusa/server/src/links/subscription-order.js +13 -0
- package/.medusa/server/src/links/subscription-product.js +13 -0
- package/.medusa/server/src/links/subscription-variant.js +13 -0
- package/.medusa/server/src/modules/activity-log/index.js +13 -0
- package/.medusa/server/src/modules/activity-log/migrations/Migration20260401204521.js +24 -0
- package/.medusa/server/src/modules/activity-log/migrations/Migration20260405112500.js +16 -0
- package/.medusa/server/src/modules/activity-log/models/subscription-log.js +52 -0
- package/.medusa/server/src/modules/activity-log/service.js +13 -0
- package/.medusa/server/src/modules/activity-log/types/index.js +33 -0
- package/.medusa/server/src/modules/activity-log/utils/admin-query.js +261 -0
- package/.medusa/server/src/modules/activity-log/utils/normalize-log-event.js +169 -0
- package/.medusa/server/src/modules/analytics/constants.js +8 -0
- package/.medusa/server/src/modules/analytics/index.js +13 -0
- package/.medusa/server/src/modules/analytics/migrations/Migration20260402183116.js +27 -0
- package/.medusa/server/src/modules/analytics/models/subscription-metrics-daily.js +65 -0
- package/.medusa/server/src/modules/analytics/service.js +13 -0
- package/.medusa/server/src/modules/analytics/utils/admin-query.js +632 -0
- package/.medusa/server/src/modules/analytics/utils/data-quality.js +101 -0
- package/.medusa/server/src/modules/analytics/utils/observability.js +127 -0
- package/.medusa/server/src/modules/cancellation/index.js +13 -0
- package/.medusa/server/src/modules/cancellation/migrations/Migration20260401143914.js +34 -0
- package/.medusa/server/src/modules/cancellation/migrations/Migration20260405112000.js +14 -0
- package/.medusa/server/src/modules/cancellation/models/cancellation-case.js +52 -0
- package/.medusa/server/src/modules/cancellation/models/retention-offer-event.js +47 -0
- package/.medusa/server/src/modules/cancellation/service.js +15 -0
- package/.medusa/server/src/modules/cancellation/types/index.js +43 -0
- package/.medusa/server/src/modules/cancellation/utils/admin-query.js +530 -0
- package/.medusa/server/src/modules/cancellation/utils/audit.js +21 -0
- package/.medusa/server/src/modules/cancellation/utils/errors.js +31 -0
- package/.medusa/server/src/modules/cancellation/utils/observability.js +77 -0
- package/.medusa/server/src/modules/cancellation/utils/operational-metrics.js +131 -0
- package/.medusa/server/src/modules/cancellation/utils/retention-offer-policy.js +31 -0
- package/.medusa/server/src/modules/dunning/index.js +13 -0
- package/.medusa/server/src/modules/dunning/migrations/Migration20260330190157.js +36 -0
- package/.medusa/server/src/modules/dunning/models/dunning-attempt.js +48 -0
- package/.medusa/server/src/modules/dunning/models/dunning-case.js +61 -0
- package/.medusa/server/src/modules/dunning/service.js +15 -0
- package/.medusa/server/src/modules/dunning/types/index.js +19 -0
- package/.medusa/server/src/modules/dunning/utils/admin-query.js +548 -0
- package/.medusa/server/src/modules/dunning/utils/errors.js +40 -0
- package/.medusa/server/src/modules/dunning/utils/observability.js +109 -0
- package/.medusa/server/src/modules/dunning/utils/retry-schedule.js +47 -0
- package/.medusa/server/src/modules/dunning/utils/scheduler-query.js +42 -0
- package/.medusa/server/src/modules/plan-offer/index.js +13 -0
- package/.medusa/server/src/modules/plan-offer/migrations/Migration20260329104245.js +22 -0
- package/.medusa/server/src/modules/plan-offer/migrations/Migration20260329153000.js +25 -0
- package/.medusa/server/src/modules/plan-offer/models/plan-offer.js +35 -0
- package/.medusa/server/src/modules/plan-offer/service.js +13 -0
- package/.medusa/server/src/modules/plan-offer/types/index.js +26 -0
- package/.medusa/server/src/modules/plan-offer/utils/admin-query.js +429 -0
- package/.medusa/server/src/modules/plan-offer/utils/effective-config.js +84 -0
- package/.medusa/server/src/modules/plan-offer/utils/errors.js +55 -0
- package/.medusa/server/src/modules/renewal/index.js +13 -0
- package/.medusa/server/src/modules/renewal/migrations/Migration20260329185930.js +34 -0
- package/.medusa/server/src/modules/renewal/models/renewal-attempt.js +49 -0
- package/.medusa/server/src/modules/renewal/models/renewal-cycle.js +56 -0
- package/.medusa/server/src/modules/renewal/service.js +15 -0
- package/.medusa/server/src/modules/renewal/types/index.js +23 -0
- package/.medusa/server/src/modules/renewal/utils/admin-query.js +450 -0
- package/.medusa/server/src/modules/renewal/utils/errors.js +39 -0
- package/.medusa/server/src/modules/renewal/utils/observability.js +89 -0
- package/.medusa/server/src/modules/renewal/utils/scheduler-query.js +48 -0
- package/.medusa/server/src/modules/renewal/utils/upcoming-cycle.js +54 -0
- package/.medusa/server/src/modules/settings/index.js +13 -0
- package/.medusa/server/src/modules/settings/migrations/Migration20260403121004.js +17 -0
- package/.medusa/server/src/modules/settings/migrations/Migration20260403132519.js +17 -0
- package/.medusa/server/src/modules/settings/models/subscription-settings.js +32 -0
- package/.medusa/server/src/modules/settings/service.js +82 -0
- package/.medusa/server/src/modules/settings/types.js +15 -0
- package/.medusa/server/src/modules/settings/utils/audit.js +43 -0
- package/.medusa/server/src/modules/settings/utils/normalize-settings.js +99 -0
- package/.medusa/server/src/modules/subscription/index.js +13 -0
- package/.medusa/server/src/modules/subscription/migrations/Migration20260327143452.js +24 -0
- package/.medusa/server/src/modules/subscription/migrations/Migration20260329194835.js +16 -0
- package/.medusa/server/src/modules/subscription/models/subscription.js +64 -0
- package/.medusa/server/src/modules/subscription/service.js +13 -0
- package/.medusa/server/src/modules/subscription/types/index.js +17 -0
- package/.medusa/server/src/modules/subscription/utils/admin-query.js +465 -0
- package/.medusa/server/src/modules/subscription/utils/errors.js +28 -0
- package/.medusa/server/src/subscription-flows/create-subscription-from-cart.js +178 -0
- package/.medusa/server/src/workflows/apply-retention-offer.js +52 -0
- package/.medusa/server/src/workflows/approve-renewal-changes.js +61 -0
- package/.medusa/server/src/workflows/cancel-subscription.js +64 -0
- package/.medusa/server/src/workflows/create-or-upsert-plan-offer.js +11 -0
- package/.medusa/server/src/workflows/ensure-next-renewal-cycle.js +11 -0
- package/.medusa/server/src/workflows/finalize-cancellation.js +88 -0
- package/.medusa/server/src/workflows/force-renewal-cycle.js +11 -0
- package/.medusa/server/src/workflows/index.js +79 -0
- package/.medusa/server/src/workflows/mark-dunning-recovered.js +11 -0
- package/.medusa/server/src/workflows/mark-dunning-unrecovered.js +11 -0
- package/.medusa/server/src/workflows/pause-subscription.js +61 -0
- package/.medusa/server/src/workflows/process-renewal-cycle.js +43 -0
- package/.medusa/server/src/workflows/rebuild-analytics-daily-snapshots.js +13 -0
- package/.medusa/server/src/workflows/reject-renewal-changes.js +61 -0
- package/.medusa/server/src/workflows/resume-subscription.js +76 -0
- package/.medusa/server/src/workflows/run-dunning-retry.js +23 -0
- package/.medusa/server/src/workflows/schedule-subscription-plan-change.js +57 -0
- package/.medusa/server/src/workflows/start-cancellation-case.js +58 -0
- package/.medusa/server/src/workflows/start-dunning.js +11 -0
- package/.medusa/server/src/workflows/steps/apply-retention-offer.js +200 -0
- package/.medusa/server/src/workflows/steps/approve-renewal-changes.js +48 -0
- package/.medusa/server/src/workflows/steps/cancel-subscription.js +48 -0
- package/.medusa/server/src/workflows/steps/create-initial-renewal-cycle.js +6 -0
- package/.medusa/server/src/workflows/steps/create-subscription-log-event.js +61 -0
- package/.medusa/server/src/workflows/steps/create-subscription-record.js +56 -0
- package/.medusa/server/src/workflows/steps/ensure-next-renewal-cycle.js +151 -0
- package/.medusa/server/src/workflows/steps/finalize-cancellation.js +161 -0
- package/.medusa/server/src/workflows/steps/force-renewal-cycle.js +120 -0
- package/.medusa/server/src/workflows/steps/link-subscription-commerce-entities.js +44 -0
- package/.medusa/server/src/workflows/steps/mark-dunning-recovered.js +72 -0
- package/.medusa/server/src/workflows/steps/mark-dunning-unrecovered.js +53 -0
- package/.medusa/server/src/workflows/steps/normalize-analytics-rebuild-range.js +59 -0
- package/.medusa/server/src/workflows/steps/pause-subscription.js +50 -0
- package/.medusa/server/src/workflows/steps/process-renewal-cycle.js +641 -0
- package/.medusa/server/src/workflows/steps/rebuild-analytics-daily-snapshots.js +519 -0
- package/.medusa/server/src/workflows/steps/reject-renewal-changes.js +48 -0
- package/.medusa/server/src/workflows/steps/resume-subscription.js +45 -0
- package/.medusa/server/src/workflows/steps/run-dunning-retry.js +592 -0
- package/.medusa/server/src/workflows/steps/schedule-subscription-plan-change.js +81 -0
- package/.medusa/server/src/workflows/steps/shared-cancellation-log.js +3 -0
- package/.medusa/server/src/workflows/steps/shared-plan-offer.js +280 -0
- package/.medusa/server/src/workflows/steps/shared-renewal-approval.js +34 -0
- package/.medusa/server/src/workflows/steps/start-cancellation-case.js +147 -0
- package/.medusa/server/src/workflows/steps/start-dunning.js +237 -0
- package/.medusa/server/src/workflows/steps/toggle-plan-offer.js +33 -0
- package/.medusa/server/src/workflows/steps/update-cancellation-reason.js +95 -0
- package/.medusa/server/src/workflows/steps/update-dunning-retry-schedule.js +91 -0
- package/.medusa/server/src/workflows/steps/update-plan-offer.js +51 -0
- package/.medusa/server/src/workflows/steps/update-subscription-settings.js +91 -0
- package/.medusa/server/src/workflows/steps/update-subscription-shipping-address.js +54 -0
- package/.medusa/server/src/workflows/steps/upsert-plan-offer.js +48 -0
- package/.medusa/server/src/workflows/steps/validate-subscription-cart.js +280 -0
- package/.medusa/server/src/workflows/toggle-plan-offer.js +11 -0
- package/.medusa/server/src/workflows/update-cancellation-reason.js +53 -0
- package/.medusa/server/src/workflows/update-dunning-retry-schedule.js +11 -0
- package/.medusa/server/src/workflows/update-plan-offer.js +11 -0
- package/.medusa/server/src/workflows/update-subscription-settings.js +11 -0
- package/.medusa/server/src/workflows/update-subscription-shipping-address.js +99 -0
- package/.medusa/server/src/workflows/utils/analytics-incremental.js +24 -0
- package/.medusa/server/src/workflows/utils/date-output.js +13 -0
- package/.medusa/server/src/workflows/utils/subscription-settings.js +13 -0
- package/LICENSE +21 -0
- package/README.md +200 -0
- package/package.json +73 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeAdminSubscriptionLogsListQuery = normalizeAdminSubscriptionLogsListQuery;
|
|
4
|
+
exports.getAdminSubscriptionLogsListResponse = getAdminSubscriptionLogsListResponse;
|
|
5
|
+
exports.getAdminSubscriptionLogDetailResponse = getAdminSubscriptionLogDetailResponse;
|
|
6
|
+
exports.getAdminSubscriptionTimelineResponse = getAdminSubscriptionTimelineResponse;
|
|
7
|
+
exports.mapActivityLogAdminRouteError = mapActivityLogAdminRouteError;
|
|
8
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
9
|
+
const admin_query_1 = require("../../../modules/activity-log/utils/admin-query");
|
|
10
|
+
function normalizeAdminSubscriptionLogsListQuery(query) {
|
|
11
|
+
const normalized = {
|
|
12
|
+
limit: query.limit,
|
|
13
|
+
offset: query.offset,
|
|
14
|
+
q: query.q,
|
|
15
|
+
subscription_id: query.subscription_id,
|
|
16
|
+
customer_id: query.customer_id,
|
|
17
|
+
event_type: query.event_type,
|
|
18
|
+
actor_type: query.actor_type,
|
|
19
|
+
date_from: query.date_from,
|
|
20
|
+
date_to: query.date_to,
|
|
21
|
+
};
|
|
22
|
+
if (query.order) {
|
|
23
|
+
if (query.order.startsWith("-")) {
|
|
24
|
+
normalized.order = query.order.slice(1);
|
|
25
|
+
normalized.direction = "desc";
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
normalized.order = query.order;
|
|
29
|
+
normalized.direction = query.direction;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
normalized.direction = query.direction;
|
|
34
|
+
}
|
|
35
|
+
return normalized;
|
|
36
|
+
}
|
|
37
|
+
async function getAdminSubscriptionLogsListResponse(container, query) {
|
|
38
|
+
return await (0, admin_query_1.listAdminSubscriptionLogs)(container, normalizeAdminSubscriptionLogsListQuery(query));
|
|
39
|
+
}
|
|
40
|
+
async function getAdminSubscriptionLogDetailResponse(container, id, _query) {
|
|
41
|
+
return await (0, admin_query_1.getAdminSubscriptionLogDetail)(container, id);
|
|
42
|
+
}
|
|
43
|
+
async function getAdminSubscriptionTimelineResponse(container, subscriptionId, query) {
|
|
44
|
+
const { subscription_id: _subscriptionId, ...normalized } = normalizeAdminSubscriptionLogsListQuery(query);
|
|
45
|
+
return await (0, admin_query_1.getAdminSubscriptionTimeline)(container, subscriptionId, {
|
|
46
|
+
...normalized,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function mapActivityLogAdminRouteError(error) {
|
|
50
|
+
if (error instanceof utils_1.MedusaError) {
|
|
51
|
+
const typeToStatus = {
|
|
52
|
+
[utils_1.MedusaError.Types.NOT_FOUND]: 404,
|
|
53
|
+
[utils_1.MedusaError.Types.INVALID_DATA]: 400,
|
|
54
|
+
[utils_1.MedusaError.Types.CONFLICT]: 409,
|
|
55
|
+
};
|
|
56
|
+
return {
|
|
57
|
+
status: typeToStatus[error.type] ?? 500,
|
|
58
|
+
type: error.type,
|
|
59
|
+
message: error.message,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const message = error instanceof Error ? error.message : "Unexpected activity log admin error";
|
|
63
|
+
const normalized = message.toLowerCase();
|
|
64
|
+
if (normalized.includes("not found")) {
|
|
65
|
+
return {
|
|
66
|
+
status: 404,
|
|
67
|
+
type: utils_1.MedusaError.Types.NOT_FOUND,
|
|
68
|
+
message,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (normalized.includes("invalid") || normalized.includes("unsupported")) {
|
|
72
|
+
return {
|
|
73
|
+
status: 400,
|
|
74
|
+
type: utils_1.MedusaError.Types.INVALID_DATA,
|
|
75
|
+
message,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
status: 409,
|
|
80
|
+
type: utils_1.MedusaError.Types.CONFLICT,
|
|
81
|
+
message,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1sb2dzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsMEZBNEJDO0FBRUQsb0ZBUUM7QUFFRCxzRkFNQztBQUVELG9GQWFDO0FBRUQsc0VBd0NDO0FBcEhELHFEQUF1RDtBQU12RCxpRkFLd0Q7QUFFeEQsU0FBZ0IsdUNBQXVDLENBQ3JELEtBQXlDO0lBRXpDLE1BQU0sVUFBVSxHQUFtQztRQUNqRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ3BCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtRQUN0QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtRQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO0tBQ3ZCLENBQUE7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2QyxVQUFVLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUM5QixVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEMsQ0FBQztJQUNI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
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetAdminSubscriptionLogSchema = exports.GetAdminSubscriptionLogsSchema = void 0;
|
|
4
|
+
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const types_1 = require("../../../modules/activity-log/types");
|
|
7
|
+
const optionalIsoDateTime = zod_1.z.string().datetime().optional();
|
|
8
|
+
exports.GetAdminSubscriptionLogsSchema = (0, validators_1.createFindParams)({
|
|
9
|
+
offset: 0,
|
|
10
|
+
limit: 20,
|
|
11
|
+
}).extend({
|
|
12
|
+
q: zod_1.z.string().optional(),
|
|
13
|
+
direction: zod_1.z.enum(["asc", "desc"]).optional(),
|
|
14
|
+
subscription_id: zod_1.z.string().optional(),
|
|
15
|
+
customer_id: zod_1.z.string().optional(),
|
|
16
|
+
event_type: zod_1.z.preprocess((value) => {
|
|
17
|
+
if (typeof value === "string") {
|
|
18
|
+
return [value];
|
|
19
|
+
}
|
|
20
|
+
return value;
|
|
21
|
+
}, zod_1.z.array(zod_1.z.nativeEnum(types_1.ActivityLogEventType)).optional()),
|
|
22
|
+
actor_type: zod_1.z.preprocess((value) => {
|
|
23
|
+
if (typeof value === "string") {
|
|
24
|
+
return [value];
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}, zod_1.z.array(zod_1.z.nativeEnum(types_1.ActivityLogActorType)).optional()),
|
|
28
|
+
date_from: optionalIsoDateTime,
|
|
29
|
+
date_to: optionalIsoDateTime,
|
|
30
|
+
});
|
|
31
|
+
exports.GetAdminSubscriptionLogSchema = (0, validators_1.createFindParams)().extend({});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3Vic2NyaXB0aW9uLWxvZ3MvdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzRUFBd0U7QUFDeEUsNkJBQXVCO0FBQ3ZCLCtEQUc0QztBQUU1QyxNQUFNLG1CQUFtQixHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUUvQyxRQUFBLDhCQUE4QixHQUFHLElBQUEsNkJBQWdCLEVBQUM7SUFDN0QsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDUixDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4QixTQUFTLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM3QyxlQUFlLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxVQUFVLEVBQUUsT0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hCLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxVQUFVLENBQUMsNEJBQW9CLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFELFVBQVUsRUFBRSxPQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDakMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDaEIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLFVBQVUsQ0FBQyw0QkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUQsU0FBUyxFQUFFLG1CQUFtQjtJQUM5QixPQUFPLEVBQUUsbUJBQW1CO0NBQzdCLENBQUMsQ0FBQTtBQU1XLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSw2QkFBZ0IsR0FBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const workflows_1 = require("../../../../workflows");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
|
|
8
|
+
res.status(200).json(response);
|
|
9
|
+
};
|
|
10
|
+
exports.GET = GET;
|
|
11
|
+
const POST = async (req, res) => {
|
|
12
|
+
await (0, workflows_1.updatePlanOfferWorkflow)(req.scope).run({
|
|
13
|
+
input: {
|
|
14
|
+
id: req.params.id,
|
|
15
|
+
...req.validatedBody,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
|
|
19
|
+
res.status(200).json(response);
|
|
20
|
+
};
|
|
21
|
+
exports.POST = POST;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxvQ0FBa0U7QUFDbEUscURBQStEO0FBRXhELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSwrQ0FBdUMsRUFDNUQsR0FBRyxDQUFDLEtBQUssRUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZCxDQUFBO0lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBVlksUUFBQSxHQUFHLE9BVWY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTJFLEVBQzNFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLElBQUEsbUNBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsR0FBRyxDQUFDLGFBQWE7U0FDckI7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQWpCWSxRQUFBLElBQUksUUFpQmhCIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const workflows_1 = require("../../../../../workflows");
|
|
6
|
+
const POST = async (req, res) => {
|
|
7
|
+
await (0, workflows_1.togglePlanOfferWorkflow)(req.scope).run({
|
|
8
|
+
input: {
|
|
9
|
+
id: req.params.id,
|
|
10
|
+
is_enabled: req.validatedBody.is_enabled,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, req.params.id);
|
|
14
|
+
res.status(200).json(response);
|
|
15
|
+
};
|
|
16
|
+
exports.POST = POST;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvW2lkXS90b2dnbGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsdUNBQXFFO0FBQ3JFLHdEQUFrRTtBQUUzRCxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTJFLEVBQzNFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLElBQUEsbUNBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLFVBQVUsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFVBQVU7U0FDekM7S0FDRixDQUFDLENBQUE7SUFFRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQWpCWSxRQUFBLElBQUksUUFpQmhCIn0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adminSubscriptionOffersMiddlewares = void 0;
|
|
4
|
+
const http_1 = require("@medusajs/framework/http");
|
|
5
|
+
const validators_1 = require("./validators");
|
|
6
|
+
exports.adminSubscriptionOffersMiddlewares = [
|
|
7
|
+
{
|
|
8
|
+
matcher: "/admin/subscription-offers",
|
|
9
|
+
method: "GET",
|
|
10
|
+
middlewares: [
|
|
11
|
+
(0, http_1.validateAndTransformQuery)(validators_1.GetAdminSubscriptionOffersSchema, {
|
|
12
|
+
defaults: [
|
|
13
|
+
"id",
|
|
14
|
+
"name",
|
|
15
|
+
"scope",
|
|
16
|
+
"product_id",
|
|
17
|
+
"variant_id",
|
|
18
|
+
"is_enabled",
|
|
19
|
+
"allowed_frequencies",
|
|
20
|
+
"frequency_intervals",
|
|
21
|
+
"discount_per_frequency",
|
|
22
|
+
"rules",
|
|
23
|
+
"updated_at",
|
|
24
|
+
"created_at",
|
|
25
|
+
],
|
|
26
|
+
isList: true,
|
|
27
|
+
}),
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
matcher: "/admin/subscription-offers/:id",
|
|
32
|
+
method: "GET",
|
|
33
|
+
middlewares: [
|
|
34
|
+
(0, http_1.validateAndTransformQuery)(validators_1.GetAdminSubscriptionOfferSchema, {
|
|
35
|
+
defaults: [
|
|
36
|
+
"*",
|
|
37
|
+
],
|
|
38
|
+
isList: false,
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
matcher: "/admin/subscription-offers",
|
|
44
|
+
method: "POST",
|
|
45
|
+
middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminCreateSubscriptionOfferSchema)],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
matcher: "/admin/subscription-offers/:id",
|
|
49
|
+
method: "POST",
|
|
50
|
+
middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminUpdateSubscriptionOfferSchema)],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
matcher: "/admin/subscription-offers/:id/toggle",
|
|
54
|
+
method: "POST",
|
|
55
|
+
middlewares: [(0, http_1.validateAndTransformBody)(validators_1.PostAdminToggleSubscriptionOfferSchema)],
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvbWlkZGxld2FyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBSWlDO0FBQ2pDLDZDQU1xQjtBQUVSLFFBQUEsa0NBQWtDLEdBQXNCO0lBQ25FO1FBQ0UsT0FBTyxFQUFFLDRCQUE0QjtRQUNyQyxNQUFNLEVBQUUsS0FBSztRQUNiLFdBQVcsRUFBRTtZQUNYLElBQUEsZ0NBQXlCLEVBQUMsNkNBQWdDLEVBQUU7Z0JBQzFELFFBQVEsRUFBRTtvQkFDUixJQUFJO29CQUNKLE1BQU07b0JBQ04sT0FBTztvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixxQkFBcUI7b0JBQ3JCLHFCQUFxQjtvQkFDckIsd0JBQXdCO29CQUN4QixPQUFPO29CQUNQLFlBQVk7b0JBQ1osWUFBWTtpQkFDYjtnQkFDRCxNQUFNLEVBQUUsSUFBSTthQUNiLENBQUM7U0FDSDtLQUNGO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsZ0NBQWdDO1FBQ3pDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxFQUFFO1lBQ1gsSUFBQSxnQ0FBeUIsRUFBQyw0Q0FBK0IsRUFBRTtnQkFDekQsUUFBUSxFQUFFO29CQUNSLEdBQUc7aUJBQ0o7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDO1NBQ0g7S0FDRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLDRCQUE0QjtRQUNyQyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLGdDQUFnQztRQUN6QyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtJQUNEO1FBQ0UsT0FBTyxFQUFFLHVDQUF1QztRQUNoRCxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsbURBQXNDLENBQUMsQ0FBQztLQUNoRjtDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
const workflows_1 = require("../../../workflows");
|
|
6
|
+
const GET = async (req, res) => {
|
|
7
|
+
const response = await (0, utils_1.getAdminSubscriptionOffersListResponse)(req.scope, req.validatedQuery);
|
|
8
|
+
res.status(200).json(response);
|
|
9
|
+
};
|
|
10
|
+
exports.GET = GET;
|
|
11
|
+
const POST = async (req, res) => {
|
|
12
|
+
const { result } = await (0, workflows_1.createOrUpsertPlanOfferWorkflow)(req.scope).run({
|
|
13
|
+
input: req.validatedBody,
|
|
14
|
+
});
|
|
15
|
+
const planOfferId = result;
|
|
16
|
+
const response = await (0, utils_1.getAdminSubscriptionOfferDetailResponse)(req.scope, planOfferId);
|
|
17
|
+
res.status(200).json(response);
|
|
18
|
+
};
|
|
19
|
+
exports.POST = POST;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsbUNBR2dCO0FBQ2hCLGtEQUFvRTtBQUU3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBR0MsRUFDRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDhDQUFzQyxFQUMzRCxHQUFHLENBQUMsS0FBSyxFQUNULEdBQUcsQ0FBQyxjQUFjLENBQ25CLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFiWSxRQUFBLEdBQUcsT0FhZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkUsRUFDM0UsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMkNBQStCLEVBQ3RELEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7UUFDSixLQUFLLEVBQUUsR0FBRyxDQUFDLGFBQWE7S0FDekIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBZ0IsQ0FBQTtJQUVwQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsV0FBVyxDQUNaLENBQUE7SUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFqQlksUUFBQSxJQUFJLFFBaUJoQiJ9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeAdminSubscriptionOffersListQuery = normalizeAdminSubscriptionOffersListQuery;
|
|
4
|
+
exports.getAdminSubscriptionOfferDetailResponse = getAdminSubscriptionOfferDetailResponse;
|
|
5
|
+
exports.getAdminSubscriptionOffersListResponse = getAdminSubscriptionOffersListResponse;
|
|
6
|
+
const admin_query_1 = require("../../../modules/plan-offer/utils/admin-query");
|
|
7
|
+
function normalizeAdminSubscriptionOffersListQuery(query) {
|
|
8
|
+
const normalized = {
|
|
9
|
+
limit: query.limit,
|
|
10
|
+
offset: query.offset,
|
|
11
|
+
q: query.q,
|
|
12
|
+
is_enabled: query.is_enabled,
|
|
13
|
+
scope: query.scope,
|
|
14
|
+
product_id: query.product_id,
|
|
15
|
+
variant_id: query.variant_id,
|
|
16
|
+
frequency: query.frequency,
|
|
17
|
+
discount_min: query.discount_min,
|
|
18
|
+
discount_max: query.discount_max,
|
|
19
|
+
};
|
|
20
|
+
if (query.order) {
|
|
21
|
+
if (query.order.startsWith("-")) {
|
|
22
|
+
normalized.order = query.order.slice(1);
|
|
23
|
+
normalized.direction = "desc";
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
normalized.order = query.order;
|
|
27
|
+
normalized.direction = query.direction;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
normalized.direction = query.direction;
|
|
32
|
+
}
|
|
33
|
+
return normalized;
|
|
34
|
+
}
|
|
35
|
+
async function getAdminSubscriptionOfferDetailResponse(container, id) {
|
|
36
|
+
return await (0, admin_query_1.getAdminPlanOfferDetail)(container, id);
|
|
37
|
+
}
|
|
38
|
+
async function getAdminSubscriptionOffersListResponse(container, query) {
|
|
39
|
+
return await (0, admin_query_1.listAdminPlanOffers)(container, normalizeAdminSubscriptionOffersListQuery(query));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1vZmZlcnMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSw4RkE2QkM7QUFFRCwwRkFLQztBQUVELHdGQVFDO0FBcERELCtFQUlzRDtBQUV0RCxTQUFnQix5Q0FBeUMsQ0FDdkQsS0FBMkM7SUFFM0MsTUFBTSxVQUFVLEdBQTZCO1FBQzNDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDcEIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ1YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQzVCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztRQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7UUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO0tBQ2pDLENBQUE7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2QyxVQUFVLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQTtRQUMvQixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtZQUM5QixVQUFVLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDeEMsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQTtBQUNuQixDQUFDO0FBRU0sS0FBSyxVQUFVLHVDQUF1QyxDQUMzRCxTQUEwQixFQUMxQixFQUFVO0lBRVYsT0FBTyxNQUFNLElBQUEscUNBQXVCLEVBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQ3JELENBQUM7QUFFTSxLQUFLLFVBQVUsc0NBQXNDLENBQzFELFNBQTBCLEVBQzFCLEtBQTJDO0lBRTNDLE9BQU8sTUFBTSxJQUFBLGlDQUFtQixFQUM5QixTQUFTLEVBQ1QseUNBQXlDLENBQUMsS0FBSyxDQUFDLENBQ2pELENBQUE7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostAdminToggleSubscriptionOfferSchema = exports.PostAdminUpdateSubscriptionOfferSchema = exports.PostAdminCreateSubscriptionOfferSchema = exports.GetAdminSubscriptionOfferSchema = exports.GetAdminSubscriptionOffersSchema = void 0;
|
|
4
|
+
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const stringToBoolean = zod_1.z.preprocess((value) => {
|
|
7
|
+
if (typeof value === "string") {
|
|
8
|
+
if (value === "true") {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
if (value === "false") {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return value;
|
|
16
|
+
}, zod_1.z.boolean());
|
|
17
|
+
const planOfferScopeSchema = zod_1.z.enum(["product", "variant"]);
|
|
18
|
+
const planOfferFrequencyIntervalSchema = zod_1.z.enum(["week", "month", "year"]);
|
|
19
|
+
const planOfferDiscountTypeSchema = zod_1.z.enum(["percentage", "fixed"]);
|
|
20
|
+
const planOfferStackingPolicySchema = zod_1.z.enum([
|
|
21
|
+
"allowed",
|
|
22
|
+
"disallow_all",
|
|
23
|
+
"disallow_subscription_discounts",
|
|
24
|
+
]);
|
|
25
|
+
const planOfferFrequencyInputSchema = zod_1.z.object({
|
|
26
|
+
interval: planOfferFrequencyIntervalSchema,
|
|
27
|
+
value: zod_1.z.number().int().positive(),
|
|
28
|
+
});
|
|
29
|
+
const planOfferDiscountInputSchema = zod_1.z.object({
|
|
30
|
+
interval: planOfferFrequencyIntervalSchema,
|
|
31
|
+
frequency_value: zod_1.z.number().int().positive(),
|
|
32
|
+
type: planOfferDiscountTypeSchema,
|
|
33
|
+
value: zod_1.z.number().positive(),
|
|
34
|
+
});
|
|
35
|
+
const planOfferRulesSchema = zod_1.z.object({
|
|
36
|
+
minimum_cycles: zod_1.z.number().int().positive().nullable(),
|
|
37
|
+
trial_enabled: zod_1.z.boolean(),
|
|
38
|
+
trial_days: zod_1.z.number().int().positive().nullable(),
|
|
39
|
+
stacking_policy: planOfferStackingPolicySchema,
|
|
40
|
+
}).superRefine((rules, ctx) => {
|
|
41
|
+
if (!rules.trial_enabled && rules.trial_days !== null) {
|
|
42
|
+
ctx.addIssue({
|
|
43
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
44
|
+
message: "'rules.trial_days' must be null when trial is disabled",
|
|
45
|
+
path: ["trial_days"],
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (rules.trial_enabled && rules.trial_days === null) {
|
|
49
|
+
ctx.addIssue({
|
|
50
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
51
|
+
message: "'rules.trial_days' is required when trial is enabled",
|
|
52
|
+
path: ["trial_days"],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
exports.GetAdminSubscriptionOffersSchema = (0, validators_1.createFindParams)({
|
|
57
|
+
offset: 0,
|
|
58
|
+
limit: 20,
|
|
59
|
+
}).extend({
|
|
60
|
+
q: zod_1.z.string().optional(),
|
|
61
|
+
direction: zod_1.z.enum(["asc", "desc"]).optional(),
|
|
62
|
+
is_enabled: stringToBoolean.optional(),
|
|
63
|
+
scope: planOfferScopeSchema.optional(),
|
|
64
|
+
product_id: zod_1.z.string().optional(),
|
|
65
|
+
variant_id: zod_1.z.string().optional(),
|
|
66
|
+
frequency: planOfferFrequencyIntervalSchema.optional(),
|
|
67
|
+
discount_min: zod_1.z.coerce.number().nonnegative().optional(),
|
|
68
|
+
discount_max: zod_1.z.coerce.number().nonnegative().optional(),
|
|
69
|
+
});
|
|
70
|
+
exports.GetAdminSubscriptionOfferSchema = (0, validators_1.createFindParams)().extend({});
|
|
71
|
+
exports.PostAdminCreateSubscriptionOfferSchema = zod_1.z
|
|
72
|
+
.object({
|
|
73
|
+
name: zod_1.z.string().trim().min(1).max(255),
|
|
74
|
+
scope: planOfferScopeSchema,
|
|
75
|
+
product_id: zod_1.z.string().trim().min(1),
|
|
76
|
+
variant_id: zod_1.z.string().trim().min(1).nullable().optional(),
|
|
77
|
+
is_enabled: zod_1.z.boolean(),
|
|
78
|
+
allowed_frequencies: zod_1.z.array(planOfferFrequencyInputSchema).min(1),
|
|
79
|
+
discounts: zod_1.z.array(planOfferDiscountInputSchema).optional().nullable(),
|
|
80
|
+
rules: planOfferRulesSchema.optional().nullable(),
|
|
81
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().nullable(),
|
|
82
|
+
})
|
|
83
|
+
.superRefine((data, ctx) => {
|
|
84
|
+
if (data.scope === "product" && data.variant_id) {
|
|
85
|
+
ctx.addIssue({
|
|
86
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
87
|
+
message: "Product-scoped offers can't specify 'variant_id'",
|
|
88
|
+
path: ["variant_id"],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
if (data.scope === "variant" && !data.variant_id) {
|
|
92
|
+
ctx.addIssue({
|
|
93
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
94
|
+
message: "Variant-scoped offers require 'variant_id'",
|
|
95
|
+
path: ["variant_id"],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
exports.PostAdminUpdateSubscriptionOfferSchema = zod_1.z
|
|
100
|
+
.object({
|
|
101
|
+
name: zod_1.z.string().trim().min(1).max(255).optional(),
|
|
102
|
+
is_enabled: zod_1.z.boolean().optional(),
|
|
103
|
+
allowed_frequencies: zod_1.z.array(planOfferFrequencyInputSchema).min(1).optional(),
|
|
104
|
+
discounts: zod_1.z.array(planOfferDiscountInputSchema).optional().nullable(),
|
|
105
|
+
rules: planOfferRulesSchema.optional().nullable(),
|
|
106
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().nullable(),
|
|
107
|
+
})
|
|
108
|
+
.refine((value) => Object.keys(value).length > 0, "At least one field must be provided");
|
|
109
|
+
exports.PostAdminToggleSubscriptionOfferSchema = zod_1.z.object({
|
|
110
|
+
is_enabled: zod_1.z.boolean(),
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vc3Vic2NyaXB0aW9uLW9mZmVycy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNFQUF3RTtBQUN4RSw2QkFBdUI7QUFFdkIsTUFBTSxlQUFlLEdBQUcsT0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQzdDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEIsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBRWYsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUE7QUFDM0QsTUFBTSxnQ0FBZ0MsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQzFFLE1BQU0sMkJBQTJCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ25FLE1BQU0sNkJBQTZCLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQztJQUMzQyxTQUFTO0lBQ1QsY0FBYztJQUNkLGlDQUFpQztDQUNsQyxDQUFDLENBQUE7QUFFRixNQUFNLDZCQUE2QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsUUFBUSxFQUFFLGdDQUFnQztJQUMxQyxL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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adminSubscriptionSettingsMiddlewares = void 0;
|
|
4
|
+
const http_1 = require("@medusajs/framework/http");
|
|
5
|
+
const validators_1 = require("./validators");
|
|
6
|
+
exports.adminSubscriptionSettingsMiddlewares = [
|
|
7
|
+
{
|
|
8
|
+
matcher: "/admin/subscription-settings",
|
|
9
|
+
method: "POST",
|
|
10
|
+
middlewares: [
|
|
11
|
+
(0, http_1.validateAndTransformBody)(validators_1.PostAdminSubscriptionSettingsSchema),
|
|
12
|
+
],
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFHaUM7QUFDakMsNkNBQWtFO0FBRXJELFFBQUEsb0NBQW9DLEdBQXNCO0lBQ3JFO1FBQ0UsT0FBTyxFQUFFLDhCQUE4QjtRQUN2QyxNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRTtZQUNYLElBQUEsK0JBQXdCLEVBQUMsZ0RBQW1DLENBQUM7U0FDOUQ7S0FDRjtDQUNGLENBQUEifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
const GET = async (req, res) => {
|
|
6
|
+
try {
|
|
7
|
+
const response = await (0, utils_1.getAdminSubscriptionSettingsResponse)(req.scope);
|
|
8
|
+
return res.status(200).json(response);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
const mapped = (0, utils_1.mapSubscriptionSettingsAdminRouteError)(error);
|
|
12
|
+
return res.status(mapped.status).json({
|
|
13
|
+
type: mapped.type,
|
|
14
|
+
message: mapped.message,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.GET = GET;
|
|
19
|
+
const POST = async (req, res) => {
|
|
20
|
+
try {
|
|
21
|
+
const response = await (0, utils_1.updateAdminSubscriptionSettingsResponse)(req.scope, req.validatedBody, req.auth_context.actor_id);
|
|
22
|
+
return res.status(200).json(response);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
const mapped = (0, utils_1.mapSubscriptionSettingsAdminRouteError)(error);
|
|
26
|
+
return res.status(mapped.status).json({
|
|
27
|
+
type: mapped.type,
|
|
28
|
+
message: mapped.message,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.POST = POST;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtQ0FJZ0I7QUFHVCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsNENBQW9DLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXRFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFBLDhDQUFzQyxFQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTVELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3BDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQTtBQWhCWSxRQUFBLEdBQUcsT0FnQmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQXdFLEVBQ3hFLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsK0NBQXVDLEVBQzVELEdBQUcsQ0FBQyxLQUFLLEVBQ1QsR0FBRyxDQUFDLGFBQWEsRUFDakIsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQzFCLENBQUE7UUFFRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxNQUFNLEdBQUcsSUFBQSw4Q0FBc0MsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUU1RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDLENBQUE7QUFwQlksUUFBQSxJQUFJLFFBb0JoQiJ9
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeAdminSubscriptionSettingsUpdateBody = normalizeAdminSubscriptionSettingsUpdateBody;
|
|
4
|
+
exports.getAdminSubscriptionSettingsResponse = getAdminSubscriptionSettingsResponse;
|
|
5
|
+
exports.updateAdminSubscriptionSettingsResponse = updateAdminSubscriptionSettingsResponse;
|
|
6
|
+
exports.mapSubscriptionSettingsAdminRouteError = mapSubscriptionSettingsAdminRouteError;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const settings_1 = require("../../../modules/settings");
|
|
9
|
+
const workflows_1 = require("../../../workflows");
|
|
10
|
+
function getNestedSettingsErrorMessage(error) {
|
|
11
|
+
if (!error) {
|
|
12
|
+
return "Settings request failed";
|
|
13
|
+
}
|
|
14
|
+
if (typeof error === "string") {
|
|
15
|
+
return error;
|
|
16
|
+
}
|
|
17
|
+
if (error instanceof Error) {
|
|
18
|
+
return (error.message ||
|
|
19
|
+
getNestedSettingsErrorMessage(error.cause));
|
|
20
|
+
}
|
|
21
|
+
if (typeof error === "object") {
|
|
22
|
+
const record = error;
|
|
23
|
+
const candidates = [
|
|
24
|
+
record.message,
|
|
25
|
+
record.error,
|
|
26
|
+
record.details,
|
|
27
|
+
record.cause,
|
|
28
|
+
record.response?.data,
|
|
29
|
+
record.response?.message,
|
|
30
|
+
record.data?.message,
|
|
31
|
+
record.body?.message,
|
|
32
|
+
];
|
|
33
|
+
for (const candidate of candidates) {
|
|
34
|
+
const nested = getNestedSettingsErrorMessage(candidate);
|
|
35
|
+
if (nested && nested !== "Settings request failed") {
|
|
36
|
+
return nested;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return "Settings request failed";
|
|
41
|
+
}
|
|
42
|
+
function getSettingsModule(container) {
|
|
43
|
+
return container.resolve(settings_1.SETTINGS_MODULE);
|
|
44
|
+
}
|
|
45
|
+
function normalizeAdminSubscriptionSettingsUpdateBody(body, updatedBy) {
|
|
46
|
+
return {
|
|
47
|
+
default_trial_days: body.default_trial_days ?? undefined,
|
|
48
|
+
dunning_retry_intervals: body.dunning_retry_intervals ?? undefined,
|
|
49
|
+
max_dunning_attempts: body.max_dunning_attempts ?? undefined,
|
|
50
|
+
default_renewal_behavior: body.default_renewal_behavior ?? undefined,
|
|
51
|
+
default_cancellation_behavior: body.default_cancellation_behavior ?? undefined,
|
|
52
|
+
expected_version: body.expected_version ?? 0,
|
|
53
|
+
reason: body.reason ?? null,
|
|
54
|
+
updated_by: updatedBy ?? null,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async function getAdminSubscriptionSettingsResponse(container) {
|
|
58
|
+
const settingsModule = getSettingsModule(container);
|
|
59
|
+
return {
|
|
60
|
+
subscription_settings: await settingsModule.getSettings(),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async function updateAdminSubscriptionSettingsResponse(container, body, updatedBy) {
|
|
64
|
+
const normalized = normalizeAdminSubscriptionSettingsUpdateBody(body, updatedBy);
|
|
65
|
+
const { result } = await (0, workflows_1.updateSubscriptionSettingsWorkflow)(container).run({
|
|
66
|
+
input: normalized,
|
|
67
|
+
});
|
|
68
|
+
return {
|
|
69
|
+
subscription_settings: result.settings,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function mapSubscriptionSettingsAdminRouteError(error) {
|
|
73
|
+
if (error instanceof utils_1.MedusaError) {
|
|
74
|
+
const typeToStatus = {
|
|
75
|
+
[utils_1.MedusaError.Types.NOT_FOUND]: 404,
|
|
76
|
+
[utils_1.MedusaError.Types.INVALID_DATA]: 400,
|
|
77
|
+
[utils_1.MedusaError.Types.CONFLICT]: 409,
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
status: typeToStatus[error.type] ?? 500,
|
|
81
|
+
type: error.type,
|
|
82
|
+
message: error.message,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const message = getNestedSettingsErrorMessage(error);
|
|
86
|
+
const normalized = message.toLowerCase();
|
|
87
|
+
if (normalized.includes("invalid") ||
|
|
88
|
+
normalized.includes("must be") ||
|
|
89
|
+
normalized.includes("required")) {
|
|
90
|
+
return {
|
|
91
|
+
status: 400,
|
|
92
|
+
type: utils_1.MedusaError.Types.INVALID_DATA,
|
|
93
|
+
message,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (normalized.includes("conflict") || normalized.includes("version")) {
|
|
97
|
+
return {
|
|
98
|
+
status: 409,
|
|
99
|
+
type: utils_1.MedusaError.Types.CONFLICT,
|
|
100
|
+
message,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
status: 500,
|
|
105
|
+
type: utils_1.MedusaError.Types.UNEXPECTED_STATE,
|
|
106
|
+
message,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3N1YnNjcmlwdGlvbi1zZXR0aW5ncy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlFQSxvR0FlQztBQUVELG9GQVFDO0FBRUQsMEZBYUM7QUFFRCx3RkEyQ0M7QUF0SkQscURBQXVEO0FBRXZELHdEQUEyRDtBQU0zRCxrREFBdUU7QUFZdkUsU0FBUyw2QkFBNkIsQ0FBQyxLQUFjO0lBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8seUJBQXlCLENBQUE7SUFDbEMsQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDM0IsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPO1lBQ2IsNkJBQTZCLENBQUUsS0FBcUMsQ0FBQyxLQUFLLENBQUMsQ0FDNUUsQ0FBQTtJQUNILENBQUM7SUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQWdDLENBQUE7UUFDL0MsTUFBTSxVQUFVLEdBQUc7WUFDakIsTUFBTSxDQUFDLE9BQU87WUFDZCxNQUFNLENBQUMsS0FBSztZQUNaLE1BQU0sQ0FBQyxPQUFPO1lBQ2QsTUFBTSxDQUFDLEtBQUs7WUFDWCxNQUFNLENBQUMsUUFBZ0QsRUFBRSxJQUFJO1lBQzdELE1BQU0sQ0FBQyxRQUFnRCxFQUFFLE9BQU87WUFDaEUsTUFBTSxDQUFDLElBQTRDLEVBQUUsT0FBTztZQUM1RCxNQUFNLENBQUMsSUFBNEMsRUFBRSxPQUFPO1NBQzlELENBQUE7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLDZCQUE2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
|