feat: Stripe payment checkout session

This commit is contained in:
Ahmed Bouhuolia
2024-09-19 22:24:07 +02:00
parent 0ae7a25c27
commit f5a1d68c52
8 changed files with 226 additions and 4 deletions

View File

@@ -4,6 +4,8 @@ import { CreateStripeAccountService } from '@/api/controllers/StripeIntegration/
import { CreateStripeAccountDTO } from '@/api/controllers/StripeIntegration/types';
import { SaleInvoiceStripePaymentLink } from './SaleInvoiceStripePaymentLink';
import { DeleteStripePaymentLinkInvoice } from './DeleteStripePaymentLinkInvoice';
import { CreateInvoiceCheckoutSession } from './CreateInvoiceCheckoutSession';
import { StripeInvoiceCheckoutSessionPOJO } from '@/interfaces/StripePayment';
export class StripePaymentApplication {
@Inject()
@@ -15,6 +17,9 @@ export class StripePaymentApplication {
@Inject()
private deleteStripePaymentLinkInvoice: DeleteStripePaymentLinkInvoice;
@Inject()
private createSaleInvoiceCheckoutSessionService: CreateInvoiceCheckoutSession;
/**
* Creates a new Stripe account for Bigcapital.
* @param {number} tenantId
@@ -49,6 +54,22 @@ export class StripePaymentApplication {
);
}
/**
* Creates the Stripe checkout session from the given sale invoice.
* @param {number} tenantId
* @param {string} paymentLinkId
* @returns {Promise<StripeInvoiceCheckoutSessionPOJO>}
*/
public createSaleInvoiceCheckoutSession(
tenantId: number,
paymentLinkId: number
): Promise<StripeInvoiceCheckoutSessionPOJO> {
return this.createSaleInvoiceCheckoutSessionService.createInvoiceCheckoutSession(
tenantId,
paymentLinkId
);
}
/**
* Deletes the Stripe payment link associated with the given sale invoice.
* @param {number} tenantId - Tenant id.