UNPKG

@medusajs/core-flows

Version:

Set of workflow definitions for Medusa

37 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createPaymentAccountHolderStep = exports.createPaymentAccountHolderStepId = void 0; const utils_1 = require("@medusajs/framework/utils"); const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); exports.createPaymentAccountHolderStepId = "create-payment-account-holder"; /** * This step creates the account holder in the payment provider. * * @example * const accountHolder = createPaymentAccountHolderStep({ * provider_id: "pp_stripe_stripe", * context: { * customer: { * id: "cus_123", * email: "example@gmail.com" * } * } * }) */ exports.createPaymentAccountHolderStep = (0, workflows_sdk_1.createStep)(exports.createPaymentAccountHolderStepId, async (data, { container }) => { const service = container.resolve(utils_1.Modules.PAYMENT); const accountHolder = await service.createAccountHolder(data); // createAccountHolder is an idempotent operation. // We pass the account holder to the compensation step if it was actually created to avoid deleting the existing account holder. const createdAccountHolder = (0, utils_1.isPresent)(data.context.account_holder) ? null : accountHolder; return new workflows_sdk_1.StepResponse(accountHolder, createdAccountHolder); }, async (createdAccountHolder, { container }) => { if (!createdAccountHolder) { return; } const service = container.resolve(utils_1.Modules.PAYMENT); await service.deleteAccountHolder(createdAccountHolder.id); }); //# sourceMappingURL=create-payment-account-holder.js.map