UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

34 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deductPointsFromOrderStep = void 0; const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); const loyalty_1 = require("../../../modules/loyalty"); const utils_1 = require("@medusajs/framework/utils"); exports.deductPointsFromOrderStep = (0, workflows_sdk_1.createStep)("deduct-purchase-points", async ({ customer_id, amount, order_id }, { container }) => { const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE); const eventBus = container.resolve(utils_1.Modules.EVENT_BUS); const pointsToDeduct = await loyaltyModuleService.calculatePointsFromAmount(amount); const result = await loyaltyModuleService.deductPoints({ customerId: customer_id, points: pointsToDeduct, referenceType: "order", description: `Purchase of ${amount}`, order_id: order_id, }); await eventBus.emit({ name: "loyalty.points_debited", data: { orderId: order_id, total_balance: Number(result?.points), perpetual_balance: Number(result?.perpetual_points), expirable_balance: Number(result?.points) - Number(result?.perpetual_points), transaction_amount: Number(pointsToDeduct), }, }); return new workflows_sdk_1.StepResponse(result, { customer_id, points: pointsToDeduct, order_id, }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVkdWN0LW9yZGVyLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXIvc3RlcHMvZGVkdWN0LW9yZGVyLXBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0Usc0RBQTBEO0FBRTFELHFEQUFvRDtBQVF2QyxRQUFBLHlCQUF5QixHQUFHLElBQUEsMEJBQVUsRUFDakQsd0JBQXdCLEVBQ3hCLEtBQUssRUFDSCxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUE2QixFQUM1RCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLG9CQUFvQixHQUN4QixTQUFTLENBQUMsT0FBTyxDQUFDLHdCQUFjLENBQUMsQ0FBQztJQUVwQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV0RCxNQUFNLGNBQWMsR0FDbEIsTUFBTSxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvRCxNQUFNLE1BQU0sR0FBUSxNQUFNLG9CQUFvQixDQUFDLFlBQVksQ0FBQztRQUMxRCxVQUFVLEVBQUUsV0FBVztRQUN2QixNQUFNLEVBQUUsY0FBYztRQUN0QixhQUFhLEVBQUUsT0FBTztRQUN0QixXQUFXLEVBQUUsZUFBZSxNQUFNLEVBQUU7UUFDcEMsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2xCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLFFBQVE7WUFDakIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1lBQ3JDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7WUFDbkQsaUJBQWlCLEVBQ2YsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO1lBQzNELGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxjQUFjLENBQUM7U0FDM0M7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxNQUFNLEVBQUU7UUFDOUIsV0FBVztRQUNYLE1BQU0sRUFBRSxjQUFjO1FBQ3RCLFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQ0YsQ0FBQyJ9