@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
55 lines • 4.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.managePointsStep = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const utils_1 = require("@medusajs/framework/utils");
const loyalty_1 = require("../../../modules/loyalty");
exports.managePointsStep = (0, workflows_sdk_1.createStep)("manage-points", async (input, { container }) => {
const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE);
const locking = container.resolve(utils_1.Modules.LOCKING);
const expires_at = input.expiry_days
? new Date(new Date().getTime() + input.expiry_days * 24 * 60 * 60 * 1000)
: undefined;
if (input.type === "credit") {
await locking.execute(`wallet_points_${input.customer_id}`, async () => {
return await loyaltyModuleService.addPoints({
customer_id: input.customer_id,
points: input.points,
referenceType: input.reference_type,
description: input.description,
expires_at,
metadata: input.metadata,
notes: input.notes,
});
});
}
else {
await locking.execute(`wallet_points_${input.customer_id}`, async () => {
return await loyaltyModuleService.deductPoints({
customerId: input.customer_id,
points: input.points,
referenceType: input.reference_type,
description: input.description,
metadata: input.metadata,
notes: input.notes,
});
});
}
const updatedPoints = await loyaltyModuleService.getPoints(input.customer_id);
const recentTransactions = await loyaltyModuleService.getTransactionHistory(input.customer_id, {
take: 1,
skip: 0,
type: input.type,
});
return new workflows_sdk_1.StepResponse({
points: updatedPoints,
transaction: recentTransactions[0],
operation: {
type: input.type,
points: input.points,
reference_type: input.reference_type,
description: input.description,
},
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXBvaW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcG9pbnRzL3N0ZXBzL21hbmFnZS1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUFvRDtBQUdwRCxzREFBMEQ7QUFjN0MsUUFBQSxnQkFBZ0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3hDLGVBQWUsRUFDZixLQUFLLEVBQUUsS0FBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxvQkFBb0IsR0FDeEIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7SUFDcEMsTUFBTSxPQUFPLEdBQW1CLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5FLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXO1FBQ2xDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzFFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFZCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUNuQixpQkFBaUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUNwQyxLQUFLLElBQUksRUFBRTtZQUNULE9BQU8sTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7Z0JBQzFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ25DLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsVUFBVTtnQkFDVixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSzthQUNuQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxPQUFPLENBQUMsT0FBTyxDQUNuQixpQkFBaUIsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUNwQyxLQUFLLElBQUksRUFBRTtZQUNULE9BQU8sTUFBTSxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7Z0JBQzdDLFVBQVUsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixhQUFhLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ25DLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7YUFDbkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLENBQ3hELEtBQUssQ0FBQyxXQUFXLENBQ2xCLENBQUM7SUFDRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sb0JBQW9CLENBQUMscUJBQXFCLENBQ3pFLEtBQUssQ0FBQyxXQUFXLEVBQ2pCO1FBQ0UsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtLQUNqQixDQUNGLENBQUM7SUFFRixPQUFPLElBQUksNEJBQVksQ0FBQztRQUN0QixNQUFNLEVBQUUsYUFBYTtRQUNyQixXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsRUFBRTtZQUNULElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07WUFDcEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztTQUMvQjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=