@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
68 lines • 4.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeLoyaltyFromCartWorkflow = 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 update_cart_promotion_1 = require("./custom/update-cart-promotion");
const get_cart_promotion_1 = require("./steps/get-cart-promotion");
const fields = [
"id",
"customer.*",
"promotions.*",
"promotions.application_method.*",
"promotions.rules.*",
"promotions.rules.values.*",
"currency_code",
"total",
"metadata",
"items.adjustments.*",
];
exports.removeLoyaltyFromCartWorkflow = (0, workflows_sdk_1.createWorkflow)("remove-loyalty-from-cart", (input) => {
const { data: carts } = (0, core_flows_1.useQueryGraphStep)({
entity: "cart",
fields,
filters: { id: input.cart_id },
options: { throwIfKeyNotFound: true },
});
const loyaltyPromo = (0, get_cart_promotion_1.getCartPromotionStep)({
cart: carts[0],
throwErrorOn: "not-found",
});
(0, workflows_sdk_1.when)(loyaltyPromo, (result) => !!result?.code).then(() => {
update_cart_promotion_1.updateCartPromotionsWorkflow.runAsStep({
input: {
cart_id: input.cart_id,
promo_codes: [loyaltyPromo.code],
action: utils_1.PromotionActions.REMOVE,
},
});
const newMetadata = (0, workflows_sdk_1.transform)({
carts,
}, (data) => {
const { loyalty_promo_id, ...rest } = data.carts[0].metadata || {};
return {
...rest,
loyalty_promo_id: null,
loyalty_amount_used: null,
};
});
(0, core_flows_1.updateCartsStep)([
{
id: input.cart_id,
metadata: newMetadata,
},
]);
(0, core_flows_1.updatePromotionsStep)([
{
id: loyaltyPromo.id,
status: "inactive",
},
]);
});
return new workflows_sdk_1.WorkflowResponse({
success: true,
message: "Loyalty removed from cart successfully",
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWxveWFsdHktZnJvbS1jYXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9jYXJ0L3JlbW92ZS1sb3lhbHR5LWZyb20tY2FydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBNkQ7QUFDN0QscUVBSzJDO0FBQzNDLDREQUlxQztBQUVyQywwRUFBOEU7QUFDOUUsbUVBQWtFO0FBTWxFLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSTtJQUNKLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUNBQWlDO0lBQ2pDLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IsZUFBZTtJQUNmLE9BQU87SUFDUCxVQUFVO0lBQ1YscUJBQXFCO0NBQ3RCLENBQUM7QUFFVyxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsMEJBQTBCLEVBQzFCLENBQUMsS0FBb0IsRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUN4QyxNQUFNLEVBQUUsTUFBTTtRQUNkLE1BQU07UUFDTixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUM5QixPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7S0FDdEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsSUFBQSx5Q0FBb0IsRUFBQztRQUN4QyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBYTtRQUMxQixZQUFZLEVBQUUsV0FBVztLQUMxQixDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFJLEVBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDdkQsb0RBQTRCLENBQUMsU0FBUyxDQUFDO1lBQ3JDLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFLLENBQUM7Z0JBQ2pDLE1BQU0sRUFBRSx3QkFBZ0IsQ0FBQyxNQUFNO2FBQ2hDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBQSx5QkFBUyxFQUMzQjtZQUNFLEtBQUs7U0FDTixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFFbkUsT0FBTztnQkFDTCxHQUFHLElBQUk7Z0JBQ1AsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsbUJBQW1CLEVBQUUsSUFBSTthQUMxQixDQUFDO1FBQ0osQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFBLDRCQUFlLEVBQUM7WUFDZDtnQkFDRSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxXQUFXO2FBQ3RCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBQSxpQ0FBb0IsRUFBQztZQUNuQjtnQkFDRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ25CLE1BQU0sRUFBRSxVQUFVO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksZ0NBQWdCLENBQUM7UUFDMUIsT0FBTyxFQUFFLElBQUk7UUFDYixPQUFPLEVBQUUsd0NBQXdDO0tBQ2xELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=