@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
55 lines • 3.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.applyReferralOnCartWorkflow = void 0;
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
const core_flows_1 = require("@medusajs/medusa/core-flows");
const validate_customer_exists_1 = require("./steps/validate-customer-exists");
const validate_referral_code_1 = require("./steps/validate-referral-code");
const fields = [
"id",
"customer.*",
"promotions.*",
"promotions.application_method.*",
"promotions.rules.*",
"promotions.rules.values.*",
"currency_code",
"total",
"metadata",
];
exports.applyReferralOnCartWorkflow = (0, workflows_sdk_1.createWorkflow)("apply-referral-on-cart", (input) => {
const { cart_id, referral_code } = input;
const { data: carts } = (0, core_flows_1.useQueryGraphStep)({
entity: "cart",
fields,
filters: { id: cart_id },
options: { throwIfKeyNotFound: true },
});
(0, validate_customer_exists_1.validateCustomerExistsStep)({
customer: carts[0].customer,
});
(0, validate_referral_code_1.validateReferralCodeStep)({
referral_code,
customer_id: carts[0].customer.id,
});
const metadata = (0, workflows_sdk_1.transform)({ carts }, (data) => ({
...data.carts[0].metadata,
referral_code,
}));
(0, core_flows_1.updateCartsStep)([
{
id: cart_id,
metadata,
},
]);
// retrieve cart with updated metadata
const { data: updatedCarts } = (0, core_flows_1.useQueryGraphStep)({
entity: "cart",
fields,
filters: { id: cart_id },
}).config({ name: "retrieve-cart" });
return new workflows_sdk_1.WorkflowResponse({
success: true,
data: updatedCarts[0],
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcmVmZXJyYWwtb24tY2FydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvY2FydC9hcHBseS1yZWZlcnJhbC1vbi1jYXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkyQztBQUMzQyw0REFHcUM7QUFDckMsK0VBQThFO0FBQzlFLDJFQUEwRTtBQU8xRSxNQUFNLE1BQU0sR0FBRztJQUNiLElBQUk7SUFDSixZQUFZO0lBQ1osY0FBYztJQUNkLGlDQUFpQztJQUNqQyxvQkFBb0I7SUFDcEIsMkJBQTJCO0lBQzNCLGVBQWU7SUFDZixPQUFPO0lBQ1AsVUFBVTtDQUNYLENBQUM7QUFDVyxRQUFBLDJCQUEyQixHQUFHLElBQUEsOEJBQWMsRUFDdkQsd0JBQXdCLEVBQ3hCLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN4QyxNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU07UUFDTixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFO1FBQ3hCLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRTtLQUN0QyxDQUFDLENBQUM7SUFFSCxJQUFBLHFEQUEwQixFQUFDO1FBQ3pCLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtLQUM1QixDQUFDLENBQUM7SUFFSCxJQUFBLGlEQUF3QixFQUFDO1FBQ3ZCLGFBQWE7UUFDYixXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0tBQ2xDLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQ3pCLGFBQWE7S0FDZCxDQUFDLENBQUMsQ0FBQztJQUVKLElBQUEsNEJBQWUsRUFBQztRQUNkO1lBQ0UsRUFBRSxFQUFFLE9BQU87WUFDWCxRQUFRO1NBQ1Q7S0FDRixDQUFDLENBQUM7SUFFSCxzQ0FBc0M7SUFDdEMsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFBLDhCQUFpQixFQUFDO1FBQy9DLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTTtRQUNOLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUU7S0FDekIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBRXJDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=