mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
feat(dir): ✨ validate related IDs for new FilterLists
This commit is contained in:
parent
53985dac58
commit
fbd5edbbea
2 changed files with 45 additions and 3 deletions
|
|
@ -182,11 +182,19 @@ public record FilterListViewUrl
|
|||
|
||||
internal class Validator : AbstractValidator<Command>
|
||||
{
|
||||
public Validator(IValidator<Uri?> urlValidator)
|
||||
public Validator(IValidator<long?> entityIdValidator, IValidator<Uri?> urlValidator)
|
||||
{
|
||||
RuleFor(c => c.LicenseId)
|
||||
.GreaterThan(0)
|
||||
.When(c => c.LicenseId != null);
|
||||
.SetValidator(entityIdValidator);
|
||||
RuleForEach(c => c.SyntaxIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.SyntaxIds));
|
||||
RuleForEach(c => c.LanguageIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.LanguageIds));
|
||||
RuleForEach(c => c.TagIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.TagIds));
|
||||
RuleForEach(c => c.ViewUrls.Select(u => u.Url))
|
||||
.SetValidator(urlValidator)
|
||||
.OverridePropertyName(nameof(Command.ViewUrls));
|
||||
|
|
@ -206,6 +214,27 @@ public Validator(IValidator<Uri?> urlValidator)
|
|||
.SetValidator(urlValidator);
|
||||
RuleFor(c => c.DonateUrl)
|
||||
.SetValidator(urlValidator);
|
||||
RuleForEach(c => c.MaintainerIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.MaintainerIds));
|
||||
RuleForEach(c => c.UpstreamFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.UpstreamFilterListIds));
|
||||
RuleForEach(c => c.ForkFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.ForkFilterListIds));
|
||||
RuleForEach(c => c.IncludedInFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.IncludedInFilterListIds));
|
||||
RuleForEach(c => c.IncludesFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.IncludesFilterListIds));
|
||||
RuleForEach(c => c.DependencyFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.DependencyFilterListIds));
|
||||
RuleForEach(c => c.DependentFilterListIds.Select(id => (long?)id))
|
||||
.SetValidator(entityIdValidator)
|
||||
.OverridePropertyName(nameof(Command.DependentFilterListIds));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
using FluentValidation;
|
||||
|
||||
namespace FilterLists.Directory.Application.Validators;
|
||||
|
||||
internal class EntityIdValidator : AbstractValidator<long?>
|
||||
{
|
||||
public EntityIdValidator()
|
||||
{
|
||||
RuleFor(id => id)
|
||||
.GreaterThan(0)
|
||||
.When(id => id is not null);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue