@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
26 lines • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPoints = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const loyalty_1 = require("../../../modules/loyalty");
exports.getPoints = (0, workflows_sdk_1.createStep)('get-points', async (input, { container }) => {
let perpetual_points = 0;
// Process each transaction to categorize points
input.transactions.forEach((transaction) => {
if (transaction.type === 'credit') {
const points = transaction.points || 0;
// If expires_at is null/undefined, it's perpetual
if (!transaction.expires_at) {
perpetual_points += points;
}
}
});
const loyaltyService = container.resolve(loyalty_1.LOYALTY_MODULE);
const total_points = await loyaltyService.getPoints(input.customer_id);
return new workflows_sdk_1.StepResponse({
total: total_points,
perpetual: perpetual_points,
expirable: total_points - perpetual_points
}, null);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcG9pbnRzL3N0ZXBzL2dldC1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHNEQUEwRDtBQWM3QyxRQUFBLFNBQVMsR0FBRyxJQUFBLDBCQUFVLEVBQy9CLFlBQVksRUFDWixLQUFLLEVBQUUsS0FBeUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFFL0MsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFFekIsZ0RBQWdEO0lBQ2hELEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFO1FBQzVDLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUN2QyxrREFBa0Q7WUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDMUIsZ0JBQWdCLElBQUksTUFBTSxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGNBQWMsR0FBeUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFFOUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUV0RSxPQUFPLElBQUksNEJBQVksQ0FBQztRQUNwQixLQUFLLEVBQUUsWUFBWTtRQUNuQixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFNBQVMsRUFBRSxZQUFZLEdBQUcsZ0JBQWdCO0tBQzdDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDYixDQUFDLENBQ0osQ0FBQSJ9