@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
18 lines • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCartLoyaltyPromoAmountStep = void 0;
const utils_1 = require("@medusajs/framework/utils");
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const loyalty_1 = require("../../modules/loyalty");
exports.getCartLoyaltyPromoAmountStep = (0, workflows_sdk_1.createStep)("get-cart-loyalty-promo-amount", async ({ cart }, { container }) => {
// Check if customer has any loyalty points
const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE);
const loyaltyPoints = await loyaltyModuleService.getPoints(cart.customer.id);
if (loyaltyPoints <= 0) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Customer has no loyalty points");
}
const pointsAmount = await loyaltyModuleService.calculatePointsOnCart(Math.max(cart.total - cart.shipping_total, 0), loyaltyPoints, cart.subtotal);
const amount = Math.min(pointsAmount, Math.max(cart.total - cart.shipping_total, 0));
return new workflows_sdk_1.StepResponse(amount);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhcnQtbG95YWx0eS1wcm9tby1hbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0ZXBzL2dldC1jYXJ0LWxveWFsdHktcHJvbW8tYW1vdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUF3RDtBQUN4RCxxRUFBNkU7QUFFN0UsbURBQXVEO0FBYTFDLFFBQUEsNkJBQTZCLEdBQUcsSUFBQSwwQkFBVSxFQUNyRCwrQkFBK0IsRUFDL0IsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFzQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwRSwyQ0FBMkM7SUFDM0MsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7SUFDcEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLENBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUNqQixDQUFDO0lBRUYsSUFBSSxhQUFhLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsZ0NBQWdDLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxxQkFBcUIsQ0FDbkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQzdDLGFBQWEsRUFDYixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNyQixZQUFZLEVBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFFRixPQUFPLElBQUksNEJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDLENBQ0YsQ0FBQyJ9