@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
38 lines • 3.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createOrderEventStep = 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.createOrderEventStep = (0, workflows_sdk_1.createStep)("create-order-event", async (input, { container }) => {
const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE);
const { customer_id, amount, order_id, event } = input;
const eventBus = container.resolve(utils_1.Modules.EVENT_BUS);
const { pointsToAdd, expires_at } = await loyaltyModuleService.calculatePointsToAddFromOrderEvent(event, amount);
if (pointsToAdd <= 0)
return;
const result = await loyaltyModuleService.addPoints({
customer_id: customer_id,
points: pointsToAdd,
referenceType: "order",
description: `Points earned for order with total amount ${input.amount}`,
expires_at,
order_id,
});
await eventBus.emit({
name: "loyalty.points_credited",
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(pointsToAdd),
},
});
return new workflows_sdk_1.StepResponse(result, {
customer_id: input.customer_id,
points: pointsToAdd,
order_id: input.order_id,
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yZGVyLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9vcmRlci9zdGVwcy9jcmVhdGUtb3JkZXItZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBRzdFLHNEQUEwRDtBQUUxRCxxREFBb0Q7QUFTdkMsUUFBQSxvQkFBb0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLG9CQUFvQixFQUNwQixLQUFLLEVBQUUsS0FBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdEMsTUFBTSxvQkFBb0IsR0FDdEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7SUFDdEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN2RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUM3QixNQUFNLG9CQUFvQixDQUFDLGtDQUFrQyxDQUN6RCxLQUFpQixFQUNqQixNQUFNLENBQ1QsQ0FBQztJQUVWLElBQUksV0FBVyxJQUFJLENBQUM7UUFBRSxPQUFPO0lBRXpCLE1BQU0sTUFBTSxHQUFRLE1BQU0sb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3JELFdBQVcsRUFBRSxXQUFXO1FBQ3hCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLFdBQVcsRUFBRSw2Q0FBNkMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUN4RSxVQUFVO1FBQ1YsUUFBUTtLQUNYLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQztRQUNoQixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLElBQUksRUFBRTtZQUNGLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUNyQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDO1lBQ25ELGlCQUFpQixFQUNiLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztZQUM3RCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQzFDO0tBQ0osQ0FBQyxDQUFDO0lBRVAsT0FBTyxJQUFJLDRCQUFZLENBQUMsTUFBTSxFQUFFO1FBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixNQUFNLEVBQUUsV0FBVztRQUNuQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7S0FDekIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==