1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-17 11:08:16 -05:00

Renamed dto and added ctor

This commit is contained in:
jrmccannon 2025-03-07 09:03:43 -06:00
parent 46ee99a5a1
commit cb2bc574e3
No known key found for this signature in database
GPG Key ID: CF03F3DB01CE96A6
3 changed files with 36 additions and 30 deletions

View File

@ -10,6 +10,7 @@ using SecretsManagerSubscriptionUpdate = Bit.Core.AdminConsole.OrganizationFeatu
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Validation; namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Validation;
// TODO move into own file ... and change name to validator
public interface IInviteUsersValidation public interface IInviteUsersValidation
{ {
Task<ValidationResult<InviteUserOrganizationValidationRequest>> ValidateAsync(InviteUserOrganizationValidationRequest request); Task<ValidationResult<InviteUserOrganizationValidationRequest>> ValidateAsync(InviteUserOrganizationValidationRequest request);
@ -28,40 +29,44 @@ public class InviteUsersValidation(
return new Invalid<InviteUserOrganizationValidationRequest>(invalidEnvironment.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(invalidEnvironment.ErrorMessageString);
} }
if (InvitingUserOrganizationValidation.Validate(request.InviteOrganization) is Invalid<InviteOrganization> organizationValidation) var organizationValidationResult = InvitingUserOrganizationValidation.Validate(request.InviteOrganization);
if (organizationValidationResult is Invalid<InviteOrganization> organizationValidation)
{ {
return new Invalid<InviteUserOrganizationValidationRequest>(organizationValidation.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(organizationValidation.ErrorMessageString);
} }
var subscriptionUpdate = PasswordManagerSubscriptionUpdate.Create(request); var subscriptionUpdate = PasswordManagerSubscriptionUpdate.Create(request);
var passwordManagerValidationResult = PasswordManagerInviteUserValidation.Validate(subscriptionUpdate);
if (PasswordManagerInviteUserValidation.Validate(subscriptionUpdate) is if (passwordManagerValidationResult is Invalid<PasswordManagerSubscriptionUpdate> invalidSubscriptionUpdate)
Invalid<PasswordManagerSubscriptionUpdate> invalidSubscriptionUpdate)
{ {
return new Invalid<InviteUserOrganizationValidationRequest>(invalidSubscriptionUpdate.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(invalidSubscriptionUpdate.ErrorMessageString);
} }
var smSubscriptionUpdate = SecretsManagerSubscriptionUpdate.Create(request, subscriptionUpdate); var smSubscriptionUpdate = SecretsManagerSubscriptionUpdate.Create(request, subscriptionUpdate);
var secretsManagerValidationResult = SecretsManagerInviteUserValidation.Validate(smSubscriptionUpdate);
if (SecretsManagerInviteUserValidation.Validate(smSubscriptionUpdate) is if (secretsManagerValidationResult is Invalid<SecretsManagerSubscriptionUpdate> invalidSmSubscriptionUpdate)
Invalid<SecretsManagerSubscriptionUpdate> invalidSmSubscriptionUpdate)
{ {
return new Invalid<InviteUserOrganizationValidationRequest>(invalidSmSubscriptionUpdate.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(invalidSmSubscriptionUpdate.ErrorMessageString);
} }
var provider = await providerRepository.GetByOrganizationIdAsync(request.InviteOrganization.OrganizationId); var provider = await providerRepository.GetByOrganizationIdAsync(request.InviteOrganization.OrganizationId);
if (provider is not null)
{
var providerValidationResult = InvitingUserOrganizationProviderValidation.Validate(ProviderDto.FromProviderEntity(provider));
if (provider is not null && if (providerValidationResult is Invalid<ProviderDto> invalidProviderValidation)
InvitingUserOrganizationProviderValidation.Validate(ProviderDto.FromProviderEntity(provider)) is
Invalid<ProviderDto> invalidProviderValidation)
{ {
return new Invalid<InviteUserOrganizationValidationRequest>(invalidProviderValidation.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(invalidProviderValidation.ErrorMessageString);
} }
}
var paymentSubscription = await paymentService.GetSubscriptionAsync(await organizationRepository.GetByIdAsync(request.InviteOrganization.OrganizationId)); var paymentSubscription = await paymentService.GetSubscriptionAsync(await organizationRepository.GetByIdAsync(request.InviteOrganization.OrganizationId));
var paymentValidationResult = InviteUserPaymentValidation.Validate(new PaymentsSubscription(paymentSubscription, request.InviteOrganization));
if (InviteUserPaymentValidation.Validate(PaymentSubscriptionDto.FromSubscriptionInfo(paymentSubscription, request.InviteOrganization)) is if (paymentValidationResult is Invalid<PaymentsSubscription> invalidPaymentValidation)
Invalid<PaymentSubscriptionDto> invalidPaymentValidation)
{ {
return new Invalid<InviteUserOrganizationValidationRequest>(invalidPaymentValidation.ErrorMessageString); return new Invalid<InviteUserOrganizationValidationRequest>(invalidPaymentValidation.ErrorMessageString);
} }

View File

@ -1,18 +0,0 @@
using Bit.Core.AdminConsole.Models.Business;
using Bit.Core.Billing.Enums;
using Bit.Core.Models.Business;
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Validation.Models;
public class PaymentSubscriptionDto
{
public ProductTierType ProductTierType { get; init; }
public string SubscriptionStatus { get; init; }
public static PaymentSubscriptionDto FromSubscriptionInfo(SubscriptionInfo subscriptionInfo, InviteOrganization inviteOrganization) =>
new()
{
SubscriptionStatus = subscriptionInfo?.Subscription?.Status ?? string.Empty,
ProductTierType = inviteOrganization.Plan.ProductTier
};
}

View File

@ -0,0 +1,19 @@
using Bit.Core.AdminConsole.Models.Business;
using Bit.Core.Billing.Enums;
using Bit.Core.Models.Business;
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Validation.Models;
public class PaymentsSubscription
{
public ProductTierType ProductTierType { get; init; }
public string SubscriptionStatus { get; init; }
public PaymentsSubscription() { }
public PaymentsSubscription(SubscriptionInfo subscriptionInfo, InviteOrganization inviteOrganization)
{
SubscriptionStatus = subscriptionInfo?.Subscription?.Status ?? string.Empty;
ProductTierType = inviteOrganization.Plan.ProductTier;
}
}