mirror of
https://github.com/bitwarden/server.git
synced 2025-06-30 23:52:50 -05:00
PM-15066 added drop feature and unit tests. (#5053)
This commit is contained in:
@ -2,8 +2,8 @@
|
||||
using Bit.Core.Repositories;
|
||||
using Bit.Core.Tools.Entities;
|
||||
using Bit.Core.Tools.ReportFeatures.Interfaces;
|
||||
using Bit.Core.Tools.ReportFeatures.Requests;
|
||||
using Bit.Core.Tools.Repositories;
|
||||
using Bit.Core.Tools.Requests;
|
||||
|
||||
namespace Bit.Core.Tools.ReportFeatures;
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
using Bit.Core.Exceptions;
|
||||
using Bit.Core.Tools.ReportFeatures.Interfaces;
|
||||
using Bit.Core.Tools.ReportFeatures.Requests;
|
||||
using Bit.Core.Tools.Repositories;
|
||||
|
||||
namespace Bit.Core.Tools.ReportFeatures;
|
||||
|
||||
public class DropPasswordHealthReportApplicationCommand : IDropPasswordHealthReportApplicationCommand
|
||||
{
|
||||
private IPasswordHealthReportApplicationRepository _passwordHealthReportApplicationRepo;
|
||||
|
||||
public DropPasswordHealthReportApplicationCommand(
|
||||
IPasswordHealthReportApplicationRepository passwordHealthReportApplicationRepository)
|
||||
{
|
||||
_passwordHealthReportApplicationRepo = passwordHealthReportApplicationRepository;
|
||||
}
|
||||
|
||||
public async Task DropPasswordHealthReportApplicationAsync(DropPasswordHealthReportApplicationRequest request)
|
||||
{
|
||||
var data = await _passwordHealthReportApplicationRepo.GetByOrganizationIdAsync(request.OrganizationId);
|
||||
if (data == null)
|
||||
{
|
||||
throw new BadRequestException("Organization does not have any records.");
|
||||
}
|
||||
|
||||
data.Where(_ => request.PasswordHealthReportApplicationIds.Contains(_.Id)).ToList().ForEach(async _ =>
|
||||
{
|
||||
await _passwordHealthReportApplicationRepo.DeleteAsync(_);
|
||||
});
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
using Bit.Core.Tools.Entities;
|
||||
using Bit.Core.Tools.Requests;
|
||||
using Bit.Core.Tools.ReportFeatures.Requests;
|
||||
|
||||
namespace Bit.Core.Tools.ReportFeatures.Interfaces;
|
||||
|
||||
|
@ -0,0 +1,9 @@
|
||||
using Bit.Core.Tools.ReportFeatures.Requests;
|
||||
|
||||
namespace Bit.Core.Tools.ReportFeatures.Interfaces;
|
||||
|
||||
public interface IDropPasswordHealthReportApplicationCommand
|
||||
{
|
||||
Task DropPasswordHealthReportApplicationAsync(DropPasswordHealthReportApplicationRequest request);
|
||||
}
|
||||
|
@ -11,5 +11,6 @@ public static class ReportingServiceCollectionExtensions
|
||||
services.AddScoped<IMemberAccessCipherDetailsQuery, MemberAccessCipherDetailsQuery>();
|
||||
services.AddScoped<IAddPasswordHealthReportApplicationCommand, AddPasswordHealthReportApplicationCommand>();
|
||||
services.AddScoped<IGetPasswordHealthReportApplicationQuery, GetPasswordHealthReportApplicationQuery>();
|
||||
services.AddScoped<IDropPasswordHealthReportApplicationCommand, DropPasswordHealthReportApplicationCommand>();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
namespace Bit.Core.Tools.Requests;
|
||||
namespace Bit.Core.Tools.ReportFeatures.Requests;
|
||||
|
||||
public class AddPasswordHealthReportApplicationRequest
|
||||
{
|
@ -0,0 +1,7 @@
|
||||
namespace Bit.Core.Tools.ReportFeatures.Requests;
|
||||
|
||||
public class DropPasswordHealthReportApplicationRequest
|
||||
{
|
||||
public Guid OrganizationId { get; set; }
|
||||
public IEnumerable<Guid> PasswordHealthReportApplicationIds { get; set; }
|
||||
}
|
Reference in New Issue
Block a user