@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
29 lines • 2.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateReferralLinkStep = void 0;
// Step to get expired points
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const loyalty_1 = require("../../../modules/loyalty");
exports.generateReferralLinkStep = (0, workflows_sdk_1.createStep)("generate-referral-link", async ({ customer_id, expiry_days }, { container }) => {
const loyaltyModuleService = container.resolve(loyalty_1.LOYALTY_MODULE);
const wallet = await loyaltyModuleService.createOrRetrieveWallet(customer_id);
// Check if customer already has an active referral
const [existingReferral] = await loyaltyModuleService.listReferrals({
customer_id: wallet.customer_id,
status: "active",
});
if (existingReferral) {
// If there's an existing active referral, return it
return new workflows_sdk_1.StepResponse(existingReferral);
}
const expires_at = expiry_days
? new Date(new Date().getTime() + expiry_days * 24 * 60 * 60 * 1000)
: null;
// Create new referral
const referral = await loyaltyModuleService.createReferrals({
customer_id: wallet.customer_id,
expires_at: expires_at ? new Date(expires_at) : null,
});
return new workflows_sdk_1.StepResponse(referral);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtcmVmZXJyYWwtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcmVmZXJyYWwvc3RlcHMvZ2VuZXJhdGUtcmVmZXJyYWwtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBNkI7QUFDN0IscUVBQTZFO0FBRTdFLHNEQUEwRDtBQUU3QyxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsd0JBQXdCLEVBQ3hCLEtBQUssRUFDSCxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWlELEVBQzNFLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFNBQVMsQ0FBQyxPQUFPLENBQUMsd0JBQWMsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sTUFBTSxHQUNWLE1BQU0sb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsbURBQW1EO0lBQ25ELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLE1BQU0sb0JBQW9CLENBQUMsYUFBYSxDQUFDO1FBQ2xFLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixNQUFNLEVBQUUsUUFBUTtLQUNqQixDQUFDLENBQUM7SUFDSCxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsb0RBQW9EO1FBQ3BELE9BQU8sSUFBSSw0QkFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLFdBQVc7UUFDNUIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsV0FBVyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1Qsc0JBQXNCO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsZUFBZSxDQUFDO1FBQzFELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtLQUNyRCxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQ0YsQ0FBQyJ9