mirror of
https://github.com/bitwarden/server
synced 2026-01-05 18:13:31 +00:00
[AC-2361] Refactor StripeController (#4136)
* Changes ensures provider_id is handled and stored for Braintree. Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * refactoring of the stripeController class Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Move the constant variables to utility class Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Adding comments to the methods Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Add more comments to describe the method Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Add the providerId changes Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Add the missing providerId Signed-off-by: Cy Okeke <cokeke@bitwarden.com> * Fix the IsSponsoredSubscription bug Signed-off-by: Cy Okeke <cokeke@bitwarden.com> --------- Signed-off-by: Cy Okeke <cokeke@bitwarden.com>
This commit is contained in:
89
src/Billing/Services/Implementations/StripeEventProcessor.cs
Normal file
89
src/Billing/Services/Implementations/StripeEventProcessor.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using Bit.Billing.Constants;
|
||||
using Event = Stripe.Event;
|
||||
|
||||
namespace Bit.Billing.Services.Implementations;
|
||||
|
||||
public class StripeEventProcessor : IStripeEventProcessor
|
||||
{
|
||||
private readonly ILogger<StripeEventProcessor> _logger;
|
||||
private readonly ISubscriptionDeletedHandler _subscriptionDeletedHandler;
|
||||
private readonly ISubscriptionUpdatedHandler _subscriptionUpdatedHandler;
|
||||
private readonly IUpcomingInvoiceHandler _upcomingInvoiceHandler;
|
||||
private readonly IChargeSucceededHandler _chargeSucceededHandler;
|
||||
private readonly IChargeRefundedHandler _chargeRefundedHandler;
|
||||
private readonly IPaymentSucceededHandler _paymentSucceededHandler;
|
||||
private readonly IPaymentFailedHandler _paymentFailedHandler;
|
||||
private readonly IInvoiceCreatedHandler _invoiceCreatedHandler;
|
||||
private readonly IPaymentMethodAttachedHandler _paymentMethodAttachedHandler;
|
||||
private readonly ICustomerUpdatedHandler _customerUpdatedHandler;
|
||||
|
||||
public StripeEventProcessor(
|
||||
ILogger<StripeEventProcessor> logger,
|
||||
ISubscriptionDeletedHandler subscriptionDeletedHandler,
|
||||
ISubscriptionUpdatedHandler subscriptionUpdatedHandler,
|
||||
IUpcomingInvoiceHandler upcomingInvoiceHandler,
|
||||
IChargeSucceededHandler chargeSucceededHandler,
|
||||
IChargeRefundedHandler chargeRefundedHandler,
|
||||
IPaymentSucceededHandler paymentSucceededHandler,
|
||||
IPaymentFailedHandler paymentFailedHandler,
|
||||
IInvoiceCreatedHandler invoiceCreatedHandler,
|
||||
IPaymentMethodAttachedHandler paymentMethodAttachedHandler,
|
||||
ICustomerUpdatedHandler customerUpdatedHandler)
|
||||
{
|
||||
_logger = logger;
|
||||
_subscriptionDeletedHandler = subscriptionDeletedHandler;
|
||||
_subscriptionUpdatedHandler = subscriptionUpdatedHandler;
|
||||
_upcomingInvoiceHandler = upcomingInvoiceHandler;
|
||||
_chargeSucceededHandler = chargeSucceededHandler;
|
||||
_chargeRefundedHandler = chargeRefundedHandler;
|
||||
_paymentSucceededHandler = paymentSucceededHandler;
|
||||
_paymentFailedHandler = paymentFailedHandler;
|
||||
_invoiceCreatedHandler = invoiceCreatedHandler;
|
||||
_paymentMethodAttachedHandler = paymentMethodAttachedHandler;
|
||||
_customerUpdatedHandler = customerUpdatedHandler;
|
||||
}
|
||||
|
||||
public async Task ProcessEventAsync(Event parsedEvent)
|
||||
{
|
||||
switch (parsedEvent.Type)
|
||||
{
|
||||
case HandledStripeWebhook.SubscriptionDeleted:
|
||||
await _subscriptionDeletedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.SubscriptionUpdated:
|
||||
await _subscriptionUpdatedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.UpcomingInvoice:
|
||||
await _upcomingInvoiceHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.ChargeSucceeded:
|
||||
await _chargeSucceededHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.ChargeRefunded:
|
||||
await _chargeRefundedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.PaymentSucceeded:
|
||||
await _paymentSucceededHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.PaymentFailed:
|
||||
await _paymentFailedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.InvoiceCreated:
|
||||
await _invoiceCreatedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.PaymentMethodAttached:
|
||||
await _paymentMethodAttachedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.CustomerUpdated:
|
||||
await _customerUpdatedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
case HandledStripeWebhook.InvoiceFinalized:
|
||||
await _customerUpdatedHandler.HandleAsync(parsedEvent);
|
||||
break;
|
||||
default:
|
||||
_logger.LogWarning("Unsupported event received. {EventType}", parsedEvent.Type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user