UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

39 lines 3.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deductPointsFromOrderStep = 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.deductPointsFromOrderStep = (0, workflows_sdk_1.createStep)("deduct-purchase-points", async ({ customer_id, amount, order_id, order_display_id, metadata }, { container }) => { const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE); const eventBus = container.resolve(utils_1.Modules.EVENT_BUS); const locking = container.resolve(utils_1.Modules.LOCKING); const pointsToDeduct = await loyaltyModuleService.calculatePointsFromAmount(amount); const result = await locking.execute(`wallet_points_${customer_id}`, async () => { return await loyaltyModuleService.deductPoints({ customerId: customer_id, points: pointsToDeduct, referenceType: "order", description: `Purchase of ${amount}`, order_id: order_id, order_display_id, metadata, }); }); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVkdWN0LW9yZGVyLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXIvc3RlcHMvZGVkdWN0LW9yZGVyLXBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBb0Q7QUFDcEQscUVBQTZFO0FBRTdFLHNEQUEwRDtBQVc3QyxRQUFBLHlCQUF5QixHQUFHLElBQUEsMEJBQVUsRUFDakQsd0JBQXdCLEVBQ3hCLEtBQUssRUFDSCxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBNkIsRUFDeEYsRUFBRSxTQUFTLEVBQUUsRUFDYixFQUFFO0lBQ0YsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7SUFDcEMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5FLE1BQU0sY0FBYyxHQUNsQixNQUFNLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9ELE1BQU0sTUFBTSxHQUFRLE1BQU0sT0FBTyxDQUFDLE9BQU8sQ0FDdkMsaUJBQWlCLFdBQVcsRUFBRSxFQUM5QixLQUFLLElBQUksRUFBRTtRQUNULE9BQU8sTUFBTSxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7WUFDN0MsVUFBVSxFQUFFLFdBQVc7WUFDdkIsTUFBTSxFQUFFLGNBQWM7WUFDdEIsYUFBYSxFQUFFLE9BQU87WUFDdEIsV0FBVyxFQUFFLGVBQWUsTUFBTSxFQUFFO1lBQ3BDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGdCQUFnQjtZQUNoQixRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUNGLENBQUM7SUFFRixNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbEIsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsUUFBUTtZQUNqQixhQUFhLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDckMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztZQUNuRCxpQkFBaUIsRUFDZixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUM7WUFDM0Qsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQztTQUMzQztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSw0QkFBWSxDQUFDLE1BQU0sRUFBRTtRQUM5QixXQUFXO1FBQ1gsTUFBTSxFQUFFLGNBQWM7UUFDdEIsUUFBUTtLQUNULENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=