mirror of
https://github.com/bitwarden/server
synced 2025-12-22 03:03:33 +00:00
[PM-21878] update gateway/stripe fields for business units (#6186)
* [PM-21878] also update gateway/stripe fields for business units * pr feedback: replacing switch with extension method * [PM-21878] prevent invalid stripe ids from crashing the edit provider page * pr feedback: adding service methods to validate stripe ids and added unit tests for the new methods * pr feedback: move validation to SubscriberService and cleanup * pr feedback: use subscriber service to remove dependency on stripe adapter
This commit is contained in:
@@ -909,6 +909,44 @@ public class SubscriberService(
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> IsValidGatewayCustomerIdAsync(ISubscriber subscriber)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(subscriber);
|
||||
if (string.IsNullOrEmpty(subscriber.GatewayCustomerId))
|
||||
{
|
||||
// subscribers are allowed to have no customer id as a business rule
|
||||
return true;
|
||||
}
|
||||
try
|
||||
{
|
||||
await stripeAdapter.CustomerGetAsync(subscriber.GatewayCustomerId);
|
||||
return true;
|
||||
}
|
||||
catch (StripeException e) when (e.StripeError.Code == "resource_missing")
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> IsValidGatewaySubscriptionIdAsync(ISubscriber subscriber)
|
||||
{
|
||||
ArgumentNullException.ThrowIfNull(subscriber);
|
||||
if (string.IsNullOrEmpty(subscriber.GatewaySubscriptionId))
|
||||
{
|
||||
// subscribers are allowed to have no subscription id as a business rule
|
||||
return true;
|
||||
}
|
||||
try
|
||||
{
|
||||
await stripeAdapter.SubscriptionGetAsync(subscriber.GatewaySubscriptionId);
|
||||
return true;
|
||||
}
|
||||
catch (StripeException e) when (e.StripeError.Code == "resource_missing")
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#region Shared Utilities
|
||||
|
||||
private async Task AddBraintreeCustomerIdAsync(
|
||||
|
||||
Reference in New Issue
Block a user