@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
43 lines • 4.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeLoyaltyAdjustmentsStep = void 0;
const utils_1 = require("@medusajs/framework/utils");
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const helper_1 = require("../../utils/helper");
exports.removeLoyaltyAdjustmentsStep = (0, workflows_sdk_1.createStep)("remove-loyalty-adjustments", async (input, { container }) => {
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const cartService = container.resolve(utils_1.Modules.CART);
const allLineItems = (input?.cart?.items ?? []).map((item) => item.id);
if (!allLineItems.length) {
return new workflows_sdk_1.StepResponse(true, { prevData: [] });
}
// Match adjustments by their loyalty code rather than by
// `metadata.loyalty_promo_id`. The metadata id goes stale whenever the
// loyalty promotion is re-created (see getCartLoyaltyPromotion), which used
// to leave the live loyalty adjustment behind while deleting nothing.
const { data: cartLineItemAdjustment } = await query.graph({
entity: "line_item_adjustment",
fields: ["*"],
filters: {
$and: [
{ item_id: { $in: allLineItems } },
{ code: { $like: `${helper_1.LOYALTY_PROMOTION_CODE_PREFIX}%` } },
],
},
});
if (!cartLineItemAdjustment.length) {
return new workflows_sdk_1.StepResponse(true, { prevData: [] });
}
await cartService.deleteLineItemAdjustments(cartLineItemAdjustment.map((item) => item.id));
return new workflows_sdk_1.StepResponse(true, { prevData: cartLineItemAdjustment });
}, async (input, { container }) => {
const cartService = container.resolve(utils_1.Modules.CART);
await cartService.addLineItemAdjustments(input.prevData.map((item) => ({
amount: item.amount,
code: item.code,
description: item.description,
item_id: item.item_id,
promotion_id: item.promotion_id,
})));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWxveWFsdHktYWRqdXN0bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL3JlbW92ZS1sb3lhbHR5LWFkanVzdG1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUErRTtBQUMvRSxxRUFBNkU7QUFFN0UsK0NBQW1FO0FBRXRELFFBQUEsNEJBQTRCLEdBQUcsSUFBQSwwQkFBVSxFQUNwRCw0QkFBNEIsRUFDNUIsS0FBSyxFQUFFLEtBQW9CLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzVDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV2RSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCx5REFBeUQ7SUFDekQsdUVBQXVFO0lBQ3ZFLDRFQUE0RTtJQUM1RSxzRUFBc0U7SUFDdEUsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6RCxNQUFNLEVBQUUsc0JBQXNCO1FBQzlCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNiLE9BQU8sRUFBRTtZQUNQLElBQUksRUFBRTtnQkFDSixFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDbEMsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxzQ0FBNkIsR0FBRyxFQUFFLEVBQUU7YUFDekQ7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksNEJBQVksQ0FBQyxJQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxXQUFXLENBQUMseUJBQXlCLENBQ3pDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUM5QyxDQUFDO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDLEVBQ0QsS0FBSyxFQUFFLEtBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDbEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEQsTUFBTSxXQUFXLENBQUMsc0JBQXNCLENBQ3RDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtRQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7UUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3JCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtLQUNoQyxDQUFDLENBQUMsQ0FDSixDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUMifQ==