@hszrdm/core 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/src/admin/index.js +6361 -3789
- package/.medusa/server/src/admin/index.mjs +6361 -3789
- package/.medusa/server/src/api/admin/back-in-stock/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/back-in-stock/route.js +70 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.js +64 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.js +41 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.js +28 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.js +34 -0
- package/.medusa/server/src/api/admin/core-carts/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/route.js +69 -0
- package/.medusa/server/src/api/admin/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-activation/route.js +97 -0
- package/.medusa/server/src/api/admin/customer-import/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-import/route.js +166 -0
- package/.medusa/server/src/api/admin/order-export/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/order-export/route.js +88 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.js +164 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.js +204 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.js +24 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +36 -4
- package/.medusa/server/src/api/admin/product-reviews/settings/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-reviews/settings/route.js +63 -0
- package/.medusa/server/src/api/admin/shared-cart/settings/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/shared-cart/settings/route.js +31 -0
- package/.medusa/server/src/api/admin/system-runtime/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/system-runtime/route.js +18 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.d.ts +2 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.js +55 -0
- package/.medusa/server/src/api/middlewares.js +24 -1
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.d.ts +2 -0
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.js +37 -0
- package/.medusa/server/src/api/store/back-in-stock/route.d.ts +8 -0
- package/.medusa/server/src/api/store/back-in-stock/route.js +124 -0
- package/.medusa/server/src/api/store/core-carts/me/active/route.d.ts +2 -0
- package/.medusa/server/src/api/store/core-carts/me/active/route.js +54 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.js +96 -0
- package/.medusa/server/src/api/store/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/route.js +34 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +1 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.js +76 -34
- package/.medusa/server/src/api/store/review-request/route.d.ts +2 -0
- package/.medusa/server/src/api/store/review-request/route.js +60 -0
- package/.medusa/server/src/api/store/shared-carts/[token]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/shared-carts/[token]/route.js +52 -0
- package/.medusa/server/src/api/store/shared-carts/route.d.ts +13 -0
- package/.medusa/server/src/api/store/shared-carts/route.js +78 -0
- package/.medusa/server/src/core/abandoned-cart.d.ts +64 -0
- package/.medusa/server/src/core/abandoned-cart.js +197 -0
- package/.medusa/server/src/core/admin-cart-management.d.ts +18 -0
- package/.medusa/server/src/core/admin-cart-management.js +102 -0
- package/.medusa/server/src/core/admin-cart-visibility.d.ts +94 -0
- package/.medusa/server/src/core/admin-cart-visibility.js +192 -0
- package/.medusa/server/src/core/back-in-stock.d.ts +51 -0
- package/.medusa/server/src/core/back-in-stock.js +107 -0
- package/.medusa/server/src/core/cart-observability.d.ts +23 -0
- package/.medusa/server/src/core/cart-observability.js +54 -0
- package/.medusa/server/src/core/checkout-contract.d.ts +1 -0
- package/.medusa/server/src/core/checkout-contract.js +2 -1
- package/.medusa/server/src/core/customer-account-contract.d.ts +3 -0
- package/.medusa/server/src/core/customer-account-contract.js +4 -1
- package/.medusa/server/src/core/customer-activation.d.ts +120 -0
- package/.medusa/server/src/core/customer-activation.js +169 -0
- package/.medusa/server/src/core/customer-cart-resume.d.ts +21 -0
- package/.medusa/server/src/core/customer-cart-resume.js +72 -0
- package/.medusa/server/src/core/customer-email.d.ts +1 -1
- package/.medusa/server/src/core/customer-email.js +4 -1
- package/.medusa/server/src/core/native-migration-export.d.ts +6 -0
- package/.medusa/server/src/core/native-migration-export.js +105 -0
- package/.medusa/server/src/core/order-export.d.ts +11 -0
- package/.medusa/server/src/core/order-export.js +297 -0
- package/.medusa/server/src/core/review-request.d.ts +61 -0
- package/.medusa/server/src/core/review-request.js +105 -0
- package/.medusa/server/src/core/review-reward.d.ts +94 -0
- package/.medusa/server/src/core/review-reward.js +124 -0
- package/.medusa/server/src/core/runtime-health.d.ts +39 -0
- package/.medusa/server/src/core/runtime-health.js +250 -0
- package/.medusa/server/src/core/storefront-core-config.d.ts +10 -0
- package/.medusa/server/src/core/storefront-core-config.js +26 -1
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/jobs/abandoned-cart-recovery.d.ts +23 -0
- package/.medusa/server/src/jobs/abandoned-cart-recovery.js +137 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.d.ts +15 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.js +90 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.d.ts +17 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.js +107 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.d.ts +19 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.js +183 -0
- package/.medusa/server/src/jobs/mpl-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/mpl-status-sync.js +12 -7
- package/.medusa/server/src/jobs/product-review-request-dispatch.d.ts +28 -0
- package/.medusa/server/src/jobs/product-review-request-dispatch.js +84 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.d.ts +12 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.js +13 -0
- package/.medusa/server/src/jobs/shipping-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/shipping-status-sync.js +11 -14
- package/.medusa/server/src/lib/modules/shipping/idempotency.js +3 -3
- package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
- package/.medusa/server/src/lib/modules/shipping/tracking.d.ts +48 -0
- package/.medusa/server/src/lib/modules/shipping/tracking.js +368 -0
- package/.medusa/server/src/lib/modules/shipping/webhooks.d.ts +6 -9
- package/.medusa/server/src/lib/modules/shipping/webhooks.js +24 -137
- package/.medusa/server/src/modules/back-in-stock/index.d.ts +23 -0
- package/.medusa/server/src/modules/back-in-stock/index.js +16 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.d.ts +5 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.js +18 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.d.ts +13 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.js +23 -0
- package/.medusa/server/src/modules/back-in-stock/service.d.ts +22 -0
- package/.medusa/server/src/modules/back-in-stock/service.js +12 -0
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/defaults.js +7 -1
- package/.medusa/server/src/modules/email-center/index.d.ts +2 -0
- package/.medusa/server/src/modules/email-center/index.js +3 -1
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.js +30 -0
- package/.medusa/server/src/modules/integration-settings/index.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/index.js +2 -1
- package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -1
- package/.medusa/server/src/modules/product-review/index.d.ts +14 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.js +28 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.js +20 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.js +18 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.d.ts +15 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.js +19 -0
- package/.medusa/server/src/modules/product-review/models/product-review.d.ts +6 -2
- package/.medusa/server/src/modules/product-review/models/product-review.js +7 -3
- package/.medusa/server/src/modules/product-review/service.d.ts +22 -1
- package/.medusa/server/src/modules/product-review/service.js +3 -2
- package/.medusa/server/src/modules/shared-cart/index.d.ts +21 -0
- package/.medusa/server/src/modules/shared-cart/index.js +13 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.d.ts +5 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.js +16 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.d.ts +10 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.js +17 -0
- package/.medusa/server/src/modules/shared-cart/service.d.ts +14 -0
- package/.medusa/server/src/modules/shared-cart/service.js +11 -0
- package/.medusa/server/src/modules/shared-cart/settings.d.ts +7 -0
- package/.medusa/server/src/modules/shared-cart/settings.js +64 -0
- package/.medusa/server/src/providers/dpd/index.d.ts +2 -0
- package/.medusa/server/src/providers/dpd/index.js +3 -1
- package/.medusa/server/src/providers/dpd/statusdata-ftp.d.ts +16 -0
- package/.medusa/server/src/providers/dpd/statusdata-ftp.js +268 -0
- package/.medusa/server/src/providers/dpd/statusdata.d.ts +14 -0
- package/.medusa/server/src/providers/dpd/statusdata.js +161 -0
- package/.medusa/server/src/providers/mpl/client.d.ts +3 -1
- package/.medusa/server/src/providers/mpl/client.js +154 -2
- package/.medusa/server/src/providers/mpl/service.js +31 -20
- package/.medusa/server/src/providers/mpl/types.d.ts +25 -0
- package/.medusa/server/src/providers/mpl/types.js +1 -1
- package/.medusa/server/src/providers/packeta/index.d.ts +1 -0
- package/.medusa/server/src/providers/packeta/index.js +2 -1
- package/.medusa/server/src/providers/packeta/push-tracking.d.ts +8 -0
- package/.medusa/server/src/providers/packeta/push-tracking.js +96 -0
- package/.medusa/server/src/providers/packeta/service.js +22 -2
- package/.medusa/server/src/scripts/core-init.d.ts +1 -1
- package/.medusa/server/src/scripts/core-init.js +3 -2
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.d.ts +7 -0
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.js +65 -0
- package/.medusa/server/src/workflows/link-migrated-customer.d.ts +8 -0
- package/.medusa/server/src/workflows/link-migrated-customer.js +17 -0
- package/README.md +1 -1
- package/package.json +30 -8
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const back_in_stock_1 = require("../../../modules/back-in-stock");
|
|
6
|
+
async function GET(req, res) {
|
|
7
|
+
const status = text(req.query?.status);
|
|
8
|
+
const productId = text(req.query?.product_id);
|
|
9
|
+
const variantId = text(req.query?.variant_id);
|
|
10
|
+
const email = text(req.query?.email).toLowerCase();
|
|
11
|
+
const limit = clampInt(req.query?.limit, 50, 1, 200);
|
|
12
|
+
const offset = clampInt(req.query?.offset, 0, 0, 100000);
|
|
13
|
+
const filters = {};
|
|
14
|
+
if (status)
|
|
15
|
+
filters.status = status;
|
|
16
|
+
if (productId)
|
|
17
|
+
filters.product_id = productId;
|
|
18
|
+
if (variantId)
|
|
19
|
+
filters.variant_id = variantId;
|
|
20
|
+
if (email)
|
|
21
|
+
filters.email = email;
|
|
22
|
+
const service = req.scope.resolve(back_in_stock_1.BACK_IN_STOCK_MODULE);
|
|
23
|
+
const [subscriptions, count] = await service.listAndCountBackInStockSubscriptions(filters, { take: limit, skip: offset, order: { created_at: "DESC" } });
|
|
24
|
+
const variantIds = [...new Set(subscriptions.map((item) => String(item.variant_id || "")).filter(Boolean))];
|
|
25
|
+
const variantMap = new Map();
|
|
26
|
+
if (variantIds.length) {
|
|
27
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
28
|
+
const { data } = await query.graph({
|
|
29
|
+
entity: "product_variant",
|
|
30
|
+
fields: ["id", "title", "sku", "product.id", "product.title", "product.handle"],
|
|
31
|
+
filters: { id: variantIds },
|
|
32
|
+
});
|
|
33
|
+
for (const variant of data)
|
|
34
|
+
variantMap.set(String(variant.id), variant);
|
|
35
|
+
}
|
|
36
|
+
return res.json({
|
|
37
|
+
subscriptions: subscriptions.map((item) => {
|
|
38
|
+
const variant = variantMap.get(String(item.variant_id)) || {};
|
|
39
|
+
return {
|
|
40
|
+
id: item.id,
|
|
41
|
+
email: item.email,
|
|
42
|
+
status: item.status,
|
|
43
|
+
locale: item.locale,
|
|
44
|
+
product_id: item.product_id,
|
|
45
|
+
product_title: variant.product?.title || null,
|
|
46
|
+
product_handle: variant.product?.handle || null,
|
|
47
|
+
variant_id: item.variant_id,
|
|
48
|
+
variant_title: variant.title || null,
|
|
49
|
+
variant_sku: variant.sku || null,
|
|
50
|
+
notified_at: item.notified_at || null,
|
|
51
|
+
last_error: item.last_error || null,
|
|
52
|
+
created_at: item.created_at,
|
|
53
|
+
updated_at: item.updated_at,
|
|
54
|
+
};
|
|
55
|
+
}),
|
|
56
|
+
count,
|
|
57
|
+
limit,
|
|
58
|
+
offset,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function text(value) {
|
|
62
|
+
return typeof value === "string" ? value.trim() : "";
|
|
63
|
+
}
|
|
64
|
+
function clampInt(value, fallback, min, max) {
|
|
65
|
+
const number = Number(value);
|
|
66
|
+
if (!Number.isFinite(number))
|
|
67
|
+
return fallback;
|
|
68
|
+
return Math.max(min, Math.min(max, Math.trunc(number)));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JhY2staW4tc3RvY2svcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxrQkF5REM7QUE1REQscURBQXFFO0FBQ3JFLGtFQUE4RjtBQUV2RixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFeEQsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQTtJQUMzQyxJQUFJLE1BQU07UUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUNuQyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLEtBQUs7UUFBRSxP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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
|
|
2
|
+
export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
|
|
3
|
+
export declare function DELETE(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
exports.DELETE = DELETE;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const admin_cart_visibility_1 = require("../../../../../../core/admin-cart-visibility");
|
|
8
|
+
const admin_cart_management_1 = require("../../../../../../core/admin-cart-management");
|
|
9
|
+
const cart_observability_1 = require("../../../../../../core/cart-observability");
|
|
10
|
+
const integration_settings_1 = require("../../../../../../modules/integration-settings");
|
|
11
|
+
async function POST(req, res) {
|
|
12
|
+
try {
|
|
13
|
+
const cartId = (0, admin_cart_management_1.requireAdminCartId)(req.params?.id);
|
|
14
|
+
const itemId = (0, admin_cart_management_1.requireLineItemId)(req.params?.itemId);
|
|
15
|
+
const body = (req.body || {});
|
|
16
|
+
const quantity = (0, admin_cart_management_1.requireCartQuantity)(body.quantity);
|
|
17
|
+
const { query, delayHours } = await cartContext(req);
|
|
18
|
+
(0, admin_cart_management_1.assertAdminCartMutable)(await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours));
|
|
19
|
+
await (0, core_flows_1.updateLineItemInCartWorkflow)(req.scope).run({
|
|
20
|
+
input: {
|
|
21
|
+
cart_id: cartId,
|
|
22
|
+
item_id: itemId,
|
|
23
|
+
update: { quantity },
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours);
|
|
27
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
28
|
+
return res.json({ cart });
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
32
|
+
message: error instanceof Error ? error.message : "A kosártétel nem módosítható.",
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function DELETE(req, res) {
|
|
37
|
+
try {
|
|
38
|
+
const cartId = (0, admin_cart_management_1.requireAdminCartId)(req.params?.id);
|
|
39
|
+
const itemId = (0, admin_cart_management_1.requireLineItemId)(req.params?.itemId);
|
|
40
|
+
const { query, delayHours } = await cartContext(req);
|
|
41
|
+
(0, admin_cart_management_1.assertAdminCartMutable)(await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours));
|
|
42
|
+
await (0, core_flows_1.deleteLineItemsWorkflow)(req.scope).run({
|
|
43
|
+
input: {
|
|
44
|
+
cart_id: cartId,
|
|
45
|
+
ids: [itemId],
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours);
|
|
49
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
50
|
+
return res.json({ cart });
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
54
|
+
message: error instanceof Error ? error.message : "A kosártétel nem törölhető.",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function cartContext(req) {
|
|
59
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
60
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
61
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
62
|
+
return { query, delayHours };
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvW2lkXS9pdGVtcy9baXRlbUlkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXVCQSxvQkEwQkM7QUFFRCx3QkF1QkM7QUF6RUQscURBQXFFO0FBQ3JFLDREQUdvQztBQUNwQyx3RkFHcUQ7QUFDckQsd0ZBTXFEO0FBQ3JELGtGQUEwRjtBQUMxRix5RkFHdUQ7QUFFaEQsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQ2hFLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsMENBQWtCLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHlDQUFpQixFQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtRQUN4RCxNQUFNLFFBQVEsR0FBRyxJQUFBLDJDQUFtQixFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuRCxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXBELElBQUEsOENBQXNCLEVBQUMsTUFBTSxJQUFBLG9DQUFZLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBRXJFLE1BQU0sSUFBQSx5Q0FBNEIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2hELEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsTUFBTTtnQkFDZixPQUFPLEVBQUUsTUFBTTtnQkFDZixNQUFNLEVBQUUsRUFBRSxRQUFR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
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const admin_cart_visibility_1 = require("../../../../../core/admin-cart-visibility");
|
|
7
|
+
const admin_cart_management_1 = require("../../../../../core/admin-cart-management");
|
|
8
|
+
const cart_observability_1 = require("../../../../../core/cart-observability");
|
|
9
|
+
const integration_settings_1 = require("../../../../../modules/integration-settings");
|
|
10
|
+
async function POST(req, res) {
|
|
11
|
+
try {
|
|
12
|
+
const cartId = (0, admin_cart_management_1.requireAdminCartId)(req.params?.id);
|
|
13
|
+
const body = (req.body || {});
|
|
14
|
+
const variantId = (0, admin_cart_management_1.requireVariantId)(body.variant_id);
|
|
15
|
+
const quantity = (0, admin_cart_management_1.requireCartQuantity)(body.quantity);
|
|
16
|
+
const { query, delayHours } = await cartContext(req);
|
|
17
|
+
(0, admin_cart_management_1.assertAdminCartMutable)(await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours));
|
|
18
|
+
await (0, core_flows_1.addToCartWorkflow)(req.scope).run({
|
|
19
|
+
input: {
|
|
20
|
+
cart_id: cartId,
|
|
21
|
+
items: [{ variant_id: variantId, quantity }],
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours);
|
|
25
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
26
|
+
return res.json({ cart });
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
30
|
+
message: error instanceof Error ? error.message : "A termék nem adható a kosárhoz.",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function cartContext(req) {
|
|
35
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
36
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
37
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
38
|
+
return { query, delayHours };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvW2lkXS9pdGVtcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9CQSxvQkF5QkM7QUE1Q0QscURBQXFFO0FBQ3JFLDREQUErRDtBQUMvRCxxRkFHa0Q7QUFDbEQscUZBTWtEO0FBQ2xELCtFQUF1RjtBQUN2RixzRkFHb0Q7QUFFN0MsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQ2hFLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsMENBQWtCLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNqRCxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUE0QixDQUFBO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUEsd0NBQWdCLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUEsMkNBQW1CLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFcEQsSUFBQSw4Q0FBc0IsRUFBQyxNQUFNLElBQUEsb0NBQVksRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFFckUsTUFBTSxJQUFBLDhCQUFpQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDckMsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxNQUFNO2dCQUNmLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUM3QztTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxvQ0FBWSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDMUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtRQUM5RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUEsaURBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkQsT0FBTyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGlDQUFpQztTQUNwRixDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUMsR0FBa0I7SUFDM0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQzdCLGlDQUF5QixDQUFDLEtBQUssQ0FDRSxDQUFBO0lBQ25DLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyxrREFBMkIsQ0FDVyxDQUFBO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxtREFBOEIsRUFBQyxhQUFhLENBQUMsQ0FBQTtJQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzlCLENBQUMifQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = DELETE;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const admin_cart_visibility_1 = require("../../../../../../core/admin-cart-visibility");
|
|
7
|
+
const admin_cart_management_1 = require("../../../../../../core/admin-cart-management");
|
|
8
|
+
const cart_observability_1 = require("../../../../../../core/cart-observability");
|
|
9
|
+
const integration_settings_1 = require("../../../../../../modules/integration-settings");
|
|
10
|
+
async function DELETE(req, res) {
|
|
11
|
+
try {
|
|
12
|
+
const cartId = (0, admin_cart_management_1.requireAdminCartId)(req.params?.id);
|
|
13
|
+
const code = (0, admin_cart_management_1.requirePromotionCode)(req.params?.code);
|
|
14
|
+
const { query, delayHours } = await cartContext(req);
|
|
15
|
+
(0, admin_cart_management_1.assertAdminCartMutable)(await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours));
|
|
16
|
+
await (0, core_flows_1.updateCartPromotionsWorkflow)(req.scope).run({
|
|
17
|
+
input: {
|
|
18
|
+
cart_id: cartId,
|
|
19
|
+
promo_codes: [code],
|
|
20
|
+
action: utils_1.PromotionActions.REMOVE,
|
|
21
|
+
force_refresh_payment_collection: true,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours);
|
|
25
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
26
|
+
return res.json({ cart });
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
30
|
+
message: error instanceof Error ? error.message : "A promóció nem távolítható el.",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
async function cartContext(req) {
|
|
35
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
36
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
37
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
38
|
+
return { query, delayHours };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvW2lkXS9wcm9tb3Rpb25zL1tjb2RlXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNCQSx3QkF5QkM7QUE5Q0QscURBR2tDO0FBQ2xDLDREQUEwRTtBQUMxRSx3RkFHcUQ7QUFDckQsd0ZBS3FEO0FBQ3JELGtGQUEwRjtBQUMxRix5RkFHdUQ7QUFFaEQsS0FBSyxVQUFVLE1BQU0sQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQ2xFLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsMENBQWtCLEVBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNqRCxNQUFNLElBQUksR0FBRyxJQUFBLDRDQUFvQixFQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbkQsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVwRCxJQUFBLDhDQUFzQixFQUFDLE1BQU0sSUFBQSxvQ0FBWSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUVyRSxNQUFNLElBQUEseUNBQTRCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsd0JBQWdCLENBQUMsTUFBTTtnQkFDL0IsZ0NBQWdDLEVBQUUsSUFBSTthQUN2QztTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxvQ0FBWSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDMUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtRQUM5RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUEsaURBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkQsT0FBTyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztTQUNuRixDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUMsR0FBa0I7SUFDM0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQzdCLGlDQUF5QixDQUFDLEtBQUssQ0FDRSxDQUFBO0lBQ25DLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyxrREFBMkIsQ0FDVyxDQUFBO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxtREFBOEIsRUFBQyxhQUFhLENBQUMsQ0FBQTtJQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzlCLENBQUMifQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
|
+
const admin_cart_visibility_1 = require("../../../../../core/admin-cart-visibility");
|
|
7
|
+
const admin_cart_management_1 = require("../../../../../core/admin-cart-management");
|
|
8
|
+
const cart_observability_1 = require("../../../../../core/cart-observability");
|
|
9
|
+
const integration_settings_1 = require("../../../../../modules/integration-settings");
|
|
10
|
+
async function POST(req, res) {
|
|
11
|
+
try {
|
|
12
|
+
const cartId = (0, admin_cart_management_1.requireAdminCartId)(req.params?.id);
|
|
13
|
+
const body = (req.body || {});
|
|
14
|
+
const code = (0, admin_cart_management_1.requirePromotionCode)(body.code);
|
|
15
|
+
const { query, delayHours } = await cartContext(req);
|
|
16
|
+
(0, admin_cart_management_1.assertAdminCartMutable)(await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours));
|
|
17
|
+
await (0, core_flows_1.updateCartPromotionsWorkflow)(req.scope).run({
|
|
18
|
+
input: {
|
|
19
|
+
cart_id: cartId,
|
|
20
|
+
promo_codes: [code],
|
|
21
|
+
action: utils_1.PromotionActions.ADD,
|
|
22
|
+
force_refresh_payment_collection: true,
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours);
|
|
26
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
27
|
+
return res.json({ cart });
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
31
|
+
message: error instanceof Error ? error.message : "A promóció nem alkalmazható.",
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function cartContext(req) {
|
|
36
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
37
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
38
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
39
|
+
return { query, delayHours };
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvW2lkXS9wcm9tb3Rpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0JBLG9CQTBCQztBQS9DRCxxREFHa0M7QUFDbEMsNERBQTBFO0FBQzFFLHFGQUdrRDtBQUNsRCxxRkFLa0Q7QUFDbEQsK0VBQXVGO0FBQ3ZGLHNGQUdvRDtBQUU3QyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSwwQ0FBa0IsRUFBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQTRCLENBQUE7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBQSw0Q0FBb0IsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDNUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVwRCxJQUFBLDhDQUFzQixFQUFDLE1BQU0sSUFBQSxvQ0FBWSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUVyRSxNQUFNLElBQUEseUNBQTRCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsd0JBQWdCLENBQUMsR0FBRztnQkFDNUIsZ0NBQWdDLEVBQUUsSUFBSTthQUN2QztTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxvQ0FBWSxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7UUFDMUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsOEJBQThCLENBQUMsQ0FBQTtRQUM5RCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUEsaURBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkQsT0FBTyxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtTQUNqRixDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxXQUFXLENBQUMsR0FBa0I7SUFDM0MsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQzdCLGlDQUF5QixDQUFDLEtBQUssQ0FDRSxDQUFBO0lBQ25DLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyxrREFBMkIsQ0FDVyxDQUFBO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxtREFBOEIsRUFBQyxhQUFhLENBQUMsQ0FBQTtJQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFBO0FBQzlCLENBQUMifQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const admin_cart_visibility_1 = require("../../../../core/admin-cart-visibility");
|
|
6
|
+
const cart_observability_1 = require("../../../../core/cart-observability");
|
|
7
|
+
const integration_settings_1 = require("../../../../modules/integration-settings");
|
|
8
|
+
async function GET(req, res) {
|
|
9
|
+
try {
|
|
10
|
+
const id = String(req.params?.id || "").trim();
|
|
11
|
+
if (!id)
|
|
12
|
+
return res.status(400).json({ message: "A kosár azonosítója hiányzik." });
|
|
13
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
15
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
16
|
+
const cart = await (0, admin_cart_visibility_1.getAdminCart)(query, id, delayHours);
|
|
17
|
+
if (!cart)
|
|
18
|
+
return res.status(404).json({ message: "A kosár nem található." });
|
|
19
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
20
|
+
return res.json({ cart, abandoned_delay_hours: delayHours });
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return res.status(500).json({
|
|
24
|
+
message: error instanceof Error ? error.message : "A kosár nem tölthető be.",
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGtCQXNCQztBQWpDRCxxREFBcUU7QUFDckUsa0ZBRytDO0FBQy9DLDRFQUFvRjtBQUNwRixtRkFHaUQ7QUFFMUMsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUM5QyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxDQUFBO1FBRWxGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUM3QixpQ0FBeUIsQ0FBQyxLQUFLLENBQ0UsQ0FBQTtRQUNuQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsa0RBQTJCLENBQ1csQ0FBQTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsbURBQThCLEVBQUMsYUFBYSxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLG9DQUFZLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUV0RCxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFBO1FBQzdFLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDOUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7U0FDN0UsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const admin_cart_visibility_1 = require("../../../../../core/admin-cart-visibility");
|
|
6
|
+
const cart_observability_1 = require("../../../../../core/cart-observability");
|
|
7
|
+
const integration_settings_1 = require("../../../../../modules/integration-settings");
|
|
8
|
+
async function GET(req, res) {
|
|
9
|
+
try {
|
|
10
|
+
const customerId = String(req.params?.id || "").trim();
|
|
11
|
+
if (!customerId) {
|
|
12
|
+
return res.status(400).json({ message: "A vásárló azonosítója hiányzik." });
|
|
13
|
+
}
|
|
14
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
15
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
16
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
17
|
+
const [cart, activeCart] = await Promise.all([
|
|
18
|
+
(0, admin_cart_visibility_1.getLatestCustomerCart)(query, customerId, delayHours),
|
|
19
|
+
(0, admin_cart_visibility_1.getActiveCustomerCart)(query, customerId, delayHours),
|
|
20
|
+
]);
|
|
21
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
22
|
+
return res.json({
|
|
23
|
+
cart,
|
|
24
|
+
active_cart: activeCart,
|
|
25
|
+
abandoned_delay_hours: delayHours,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return res.status(500).json({
|
|
30
|
+
message: error instanceof Error ? error.message : "A vásárló kosara nem tölthető be.",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvY3VzdG9tZXIvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLGtCQThCQztBQTFDRCxxREFBcUU7QUFDckUscUZBSWtEO0FBQ2xELCtFQUF1RjtBQUN2RixzRkFHb0Q7QUFFN0MsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELElBQUksQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxDQUFDLENBQUE7UUFDN0UsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUM3QixpQ0FBeUIsQ0FBQyxLQUFLLENBQ0UsQ0FBQTtRQUNuQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsa0RBQTJCLENBQ1csQ0FBQTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsbURBQThCLEVBQUMsYUFBYSxDQUFDLENBQUE7UUFDdEUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDM0MsSUFBQSw2Q0FBcUIsRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQztZQUNwRCxJQUFBLDZDQUFxQixFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1NBQ3JELENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDOUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2QsSUFBSTtZQUNKLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLHFCQUFxQixFQUFFLFVBQVU7U0FDbEMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUM7U0FDdEYsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const admin_cart_visibility_1 = require("../../../core/admin-cart-visibility");
|
|
8
|
+
const admin_cart_management_1 = require("../../../core/admin-cart-management");
|
|
9
|
+
const cart_observability_1 = require("../../../core/cart-observability");
|
|
10
|
+
const integration_settings_1 = require("../../../modules/integration-settings");
|
|
11
|
+
const STATUSES = new Set(["all", "active", "abandoned", "converted"]);
|
|
12
|
+
async function GET(req, res) {
|
|
13
|
+
try {
|
|
14
|
+
const raw = (req.query || {});
|
|
15
|
+
const requestedStatus = String(raw.status || "all").trim().toLowerCase();
|
|
16
|
+
const status = STATUSES.has(requestedStatus) ? requestedStatus : "all";
|
|
17
|
+
const { query, delayHours } = await cartContext(req);
|
|
18
|
+
const result = await (0, admin_cart_visibility_1.listAdminCarts)(query, delayHours, {
|
|
19
|
+
status: status,
|
|
20
|
+
search: String(raw.search || ""),
|
|
21
|
+
offset: Number(raw.offset || 0),
|
|
22
|
+
limit: Number(raw.limit || 25),
|
|
23
|
+
});
|
|
24
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
25
|
+
return res.json(result);
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return res.status(500).json({
|
|
29
|
+
message: error instanceof Error ? error.message : "A kosarak nem tölthetők be.",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function POST(req, res) {
|
|
34
|
+
try {
|
|
35
|
+
const body = (req.body || {});
|
|
36
|
+
const customerId = (0, admin_cart_management_1.requireCustomerId)(body.customer_id);
|
|
37
|
+
const regionId = (0, admin_cart_management_1.requireRegionId)(body.region_id);
|
|
38
|
+
const { query, delayHours } = await cartContext(req);
|
|
39
|
+
const existingCart = await (0, admin_cart_visibility_1.getActiveCustomerCart)(query, customerId, delayHours);
|
|
40
|
+
if (existingCart) {
|
|
41
|
+
return res.status(409).json({
|
|
42
|
+
message: "A vásárlónak már van aktív kosara.",
|
|
43
|
+
existing_cart: existingCart,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const { result } = await (0, core_flows_1.createCartWorkflow)(req.scope).run({
|
|
47
|
+
input: {
|
|
48
|
+
customer_id: customerId,
|
|
49
|
+
region_id: regionId,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
const cartId = String(result?.id || "").trim();
|
|
53
|
+
const cart = cartId ? await (0, admin_cart_visibility_1.getAdminCart)(query, cartId, delayHours) : null;
|
|
54
|
+
res.setHeader("Cache-Control", "private, no-store, max-age=0");
|
|
55
|
+
return res.status(201).json({ cart: cart || result });
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
return res.status((0, admin_cart_management_1.adminCartManagementStatus)(error)).json({
|
|
59
|
+
message: error instanceof Error ? error.message : "A kosár nem hozható létre.",
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function cartContext(req) {
|
|
64
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
65
|
+
const settingsStore = req.scope.resolve(integration_settings_1.INTEGRATION_SETTINGS_MODULE);
|
|
66
|
+
const delayHours = await (0, cart_observability_1.resolveAbandonedCartDelayHours)(settingsStore);
|
|
67
|
+
return { query, delayHours };
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvcmUtY2FydHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzQkEsa0JBcUJDO0FBRUQsb0JBZ0NDO0FBNUVELHFEQUFxRTtBQUNyRSw0REFBZ0U7QUFDaEUsK0VBSzRDO0FBQzVDLCtFQUk0QztBQUM1Qyx5RUFBaUY7QUFDakYsZ0ZBRzhDO0FBRTlDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtBQUU5RCxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtRQUN4RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUN4RSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUV0RSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3BELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxzQ0FBYyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDckQsTUFBTSxFQUFFLE1BQXNEO1lBQzlELE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDaEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJ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
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const customer_activation_1 = require("../../../core/customer-activation");
|
|
6
|
+
async function POST(req, res) {
|
|
7
|
+
const body = (req.body || {});
|
|
8
|
+
const ids = Array.from(new Set((Array.isArray(body.customer_ids) ? body.customer_ids : [])
|
|
9
|
+
.map((value) => String(value || "").trim())
|
|
10
|
+
.filter(Boolean)));
|
|
11
|
+
if (!ids.length) {
|
|
12
|
+
return res.status(400).json({ message: "Nincs aktiválandó vevő kiválasztva." });
|
|
13
|
+
}
|
|
14
|
+
if (ids.length > 5_000) {
|
|
15
|
+
return res.status(400).json({ message: "Egy aktiválási kampány legfeljebb 5 000 vevőt tartalmazhat." });
|
|
16
|
+
}
|
|
17
|
+
const expiresHours = numberBetween(body.expires_hours, 1, 168, 72);
|
|
18
|
+
const reward = body.reward;
|
|
19
|
+
const sendEmail = body.send_email !== false;
|
|
20
|
+
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
21
|
+
const result = {
|
|
22
|
+
total: ids.length,
|
|
23
|
+
issued: 0,
|
|
24
|
+
emailed: 0,
|
|
25
|
+
email_skipped: 0,
|
|
26
|
+
skipped: 0,
|
|
27
|
+
failed: 0,
|
|
28
|
+
warnings: [],
|
|
29
|
+
errors: [],
|
|
30
|
+
};
|
|
31
|
+
for (const customerId of ids) {
|
|
32
|
+
let customer;
|
|
33
|
+
try {
|
|
34
|
+
customer = await customerService.retrieveCustomer(customerId);
|
|
35
|
+
if (!customer?.has_account) {
|
|
36
|
+
result.skipped++;
|
|
37
|
+
result.warnings.push({
|
|
38
|
+
customer_id: customerId,
|
|
39
|
+
email: customer?.email,
|
|
40
|
+
message: "Vendég vevőhöz nem küldünk fiókaktiválást.",
|
|
41
|
+
});
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!customer?.email) {
|
|
45
|
+
result.skipped++;
|
|
46
|
+
result.warnings.push({ customer_id: customerId, message: "A vevőhöz nem tartozik e-mail cím." });
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const issued = (0, customer_activation_1.issueCustomerActivation)(customer, { expiresHours, reward });
|
|
50
|
+
await customerService.updateCustomers(customerId, {
|
|
51
|
+
metadata: issued.metadata,
|
|
52
|
+
});
|
|
53
|
+
result.issued++;
|
|
54
|
+
if (!sendEmail)
|
|
55
|
+
continue;
|
|
56
|
+
const mail = await (0, customer_activation_1.sendCustomerActivationEmail)({
|
|
57
|
+
container: req.scope,
|
|
58
|
+
customer,
|
|
59
|
+
token: issued.token,
|
|
60
|
+
expiresAt: issued.state.expires_at,
|
|
61
|
+
});
|
|
62
|
+
if (mail?.skipped) {
|
|
63
|
+
result.email_skipped++;
|
|
64
|
+
result.warnings.push({
|
|
65
|
+
customer_id: customerId,
|
|
66
|
+
email: customer.email,
|
|
67
|
+
message: "Az aktiváló token létrejött, de az e-mail küldése ki lett hagyva az e-mail konfiguráció miatt.",
|
|
68
|
+
});
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const sentState = {
|
|
72
|
+
...issued.state,
|
|
73
|
+
email_sent_at: new Date().toISOString(),
|
|
74
|
+
};
|
|
75
|
+
await customerService.updateCustomers(customerId, {
|
|
76
|
+
metadata: (0, customer_activation_1.mergeActivationMetadata)(customer.metadata, sentState),
|
|
77
|
+
});
|
|
78
|
+
result.emailed++;
|
|
79
|
+
}
|
|
80
|
+
catch (cause) {
|
|
81
|
+
result.failed++;
|
|
82
|
+
result.errors.push({
|
|
83
|
+
customer_id: customerId,
|
|
84
|
+
email: customer?.email,
|
|
85
|
+
message: cause instanceof Error ? cause.message : "Ismeretlen aktiválási hiba.",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return res.json(result);
|
|
90
|
+
}
|
|
91
|
+
function numberBetween(value, min, max, fallback) {
|
|
92
|
+
const number = Number(value);
|
|
93
|
+
if (!Number.isFinite(number))
|
|
94
|
+
return fallback;
|
|
95
|
+
return Math.min(Math.max(number, min), max);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVyLWFjdGl2YXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvQkE4RkM7QUFyR0QscURBQW1EO0FBQ25ELDJFQUkwQztBQUVuQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUM1QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDbkIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNkRBQTZELEVBQUUsQ0FBQyxDQUFBO0lBQ3pHLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxhQUFhLENB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
|