UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

51 lines 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLoyaltyRedeemablePointsWorkflow = void 0; const utils_1 = require("@medusajs/framework/utils"); const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); const core_flows_1 = require("@medusajs/medusa/core-flows"); const calculate_points_on_cart_1 = require("./steps/calculate-points-on-cart"); const get_cart_promotion_1 = require("./steps/get-cart-promotion"); const validate_customer_exists_1 = require("./steps/validate-customer-exists"); const validate_loyalty_exist_1 = require("./steps/validate-loyalty-exist"); const fields = [ "id", "customer.*", "promotions.*", "promotions.application_method.*", "promotions.rules.*", "promotions.rules.values.*", "currency_code", "total", "shipping_total", "metadata", "items.*", "items.adjustments.*", ]; const throwLoyaltyAlreadyExistError = (0, workflows_sdk_1.createStep)("throw-loyalty-already-exist-error", async (input) => { throw new utils_1.MedusaError(utils_1.MedusaError.Types.CONFLICT, "Loyalty already exists on cart"); }); exports.getLoyaltyRedeemablePointsWorkflow = (0, workflows_sdk_1.createWorkflow)("get-loyalty-redeemable-points", (input) => { const { data: carts } = (0, core_flows_1.useQueryGraphStep)({ entity: "cart", fields, filters: { id: input.cart_id }, options: { throwIfKeyNotFound: true }, }); const cart = (0, workflows_sdk_1.transform)({ carts }, ({ carts }) => carts[0]); const loyaltyAppliedToCart = (0, validate_loyalty_exist_1.validateLoyaltyExistStep)({ cart }); (0, workflows_sdk_1.when)({ loyaltyAppliedToCart }, (result) => result.loyaltyAppliedToCart).then(() => { throwLoyaltyAlreadyExistError({}); }); (0, validate_customer_exists_1.validateCustomerExistsStep)({ customer: cart.customer, }); // Check if loyalty promotion already exists on cart. (0, get_cart_promotion_1.getCartPromotionStep)({ cart, throwErrorOn: "found" }); // calculate amount that will be used to create loyalty promotion const amount = (0, calculate_points_on_cart_1.calculatePointsOnCartStep)({ cart, }); return new workflows_sdk_1.WorkflowResponse({ amount }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxveWFsdHktcmVkZWVtYWJsZS1wb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2NhcnQvZ2V0LWxveWFsdHktcmVkZWVtYWJsZS1wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQU0yQztBQUMzQyw0REFBZ0U7QUFJaEUsK0VBQTZFO0FBQzdFLG1FQUFrRTtBQUNsRSwrRUFHMEM7QUFDMUMsMkVBQTBFO0FBTTFFLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSTtJQUNKLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IsZUFBZTtJQUNmLE9BQU87SUFDUCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLFNBQVM7SUFDVCxxQkFBcUI7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sNkJBQTZCLEdBQUcsSUFBQSwwQkFBVSxFQUM5QyxtQ0FBbUMsRUFDbkMsS0FBSyxFQUFFLEtBQVUsRUFBRSxFQUFFO0lBQ25CLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQzFCLGdDQUFnQyxDQUNqQyxDQUFDO0FBQ0osQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLGtDQUFrQyxHQUFHLElBQUEsOEJBQWMsRUFDOUQsK0JBQStCLEVBQy9CLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN4QyxNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU07UUFDTixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsSUFBQSx5QkFBUyxFQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFhLENBQUMsQ0FBQztJQUV2RSxNQUFNLG9CQUFvQixHQUFHLElBQUEsaURBQXdCLEVBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRWhFLElBQUEsb0JBQUksRUFDRixFQUFFLG9CQUFvQixFQUFFLEVBQ3hCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQ3hDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNWLDZCQUE2QixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxxREFBMEIsRUFBQztRQUN6QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7S0FDVyxDQUFDLENBQUM7SUFFdEMscURBQXFEO0lBQ3JELElBQUEseUNBQW9CLEVBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFdEQsaUVBQWlFO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUEsb0RBQXlCLEVBQUM7UUFDdkMsSUFBSTtLQUM0QyxDQUFDLENBQUM7SUFFcEQsT0FBTyxJQUFJLGdDQUFnQixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUMxQyxDQUFDLENBQ0YsQ0FBQyJ9