Initial commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
using FastEndpoints;
|
||||
using FluentValidation;
|
||||
using MetaCourse.Api.DTOs.Resources;
|
||||
using MetaCourse.Api.Entities;
|
||||
|
||||
namespace MetaCourse.Api.Validators.Resources;
|
||||
|
||||
public class CreateResourceDtoValidator : Validator<CreateResourceDto>
|
||||
{
|
||||
public CreateResourceDtoValidator()
|
||||
{
|
||||
RuleFor(x => x.Title)
|
||||
.NotEmpty().WithMessage("Le titre est requis.")
|
||||
.MinimumLength(2).WithMessage("Le titre doit contenir au moins 2 caractères.")
|
||||
.MaximumLength(200).WithMessage("Le titre ne peut pas dépasser 200 caractères.");
|
||||
|
||||
RuleFor(x => x.Content)
|
||||
.NotEmpty().WithMessage("Le contenu est requis.");
|
||||
|
||||
RuleFor(x => x.Type)
|
||||
.IsInEnum().WithMessage("Le type de ressource est invalide.");
|
||||
|
||||
When(x => x.Type == ResourceType.Url || x.Type == ResourceType.Video, () =>
|
||||
{
|
||||
RuleFor(x => x.Content)
|
||||
.Must(c => Uri.TryCreate(c, UriKind.Absolute, out _))
|
||||
.WithMessage("Le contenu doit être une URL valide pour ce type de ressource.");
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user