- Ajout de fluent validator
- Ajout d'une validation sur le dtoLogin
This commit is contained in:
parent
19c85ca534
commit
272e928304
@ -27,6 +27,7 @@ public static class Conf
|
||||
builder.AddSerilog();
|
||||
builder.AddJwt();
|
||||
builder.Services.AddAutoMapper(typeof(Program));
|
||||
|
||||
}
|
||||
|
||||
public static void AddRepositories(this WebApplicationBuilder builder)
|
||||
|
@ -3,5 +3,4 @@ namespace ldap_cesi.Models;
|
||||
public class ResponseDataModel<T> : ResponseModel, IResponseDataModel<T> where T : class
|
||||
{
|
||||
public T Data { get; set; } = null!;
|
||||
public string Token { get; set; }
|
||||
}
|
@ -4,7 +4,7 @@ public class ResponseModel : IResponseModel
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public string? Message { get; set; }
|
||||
public string? TokenJWT { get; set; }
|
||||
public string? Token { get; set; }
|
||||
|
||||
public int StatusCode { get; set; }
|
||||
}
|
@ -7,7 +7,7 @@ namespace ldap_cesi.Services.Interfaces;
|
||||
|
||||
public interface IUtilisateurService
|
||||
{
|
||||
Task<IResponseDataModel<List<Utilisateur>>> GetAll();
|
||||
Task<IResponseDataModel<Utilisateur>> GetById(int id);
|
||||
Task<IResponseDataModel<List<UtilisateurOutputDto>>> GetAll();
|
||||
Task<IResponseDataModel<UtilisateurOutputDto>> GetById(int id);
|
||||
Task<IResponseDataModel<UtilisateurOutputDto>> Login(UtilisateurLoginDto utilisateurInput);
|
||||
}
|
@ -5,6 +5,7 @@ using ldap_cesi.Entities;
|
||||
using ldap_cesi.Models;
|
||||
using ldap_cesi.Repository.Services;
|
||||
using ldap_cesi.Services.Interfaces;
|
||||
using ldap_cesi.Validator.Utilisateur;
|
||||
|
||||
namespace ldap_cesi.Services;
|
||||
|
||||
@ -20,30 +21,44 @@ public class UtilisateurService : IUtilisateurService
|
||||
_mapper = mapper;
|
||||
}
|
||||
|
||||
public async Task<IResponseDataModel<List<Utilisateur>>> GetAll()
|
||||
public async Task<IResponseDataModel<List<UtilisateurOutputDto>>> GetAll()
|
||||
{
|
||||
var utilisateurs = await _repositoryUtilisateur.GetAllAsync();
|
||||
return new ResponseDataModel<List<Utilisateur>>
|
||||
var utilisateursOutputDto = _mapper.Map<List<UtilisateurOutputDto>>(utilisateurs);
|
||||
return new ResponseDataModel<List<UtilisateurOutputDto>>
|
||||
{
|
||||
Success = true,
|
||||
StatusCode = 200,
|
||||
Data = utilisateurs,
|
||||
Data = utilisateursOutputDto,
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<IResponseDataModel<Utilisateur>> GetById(int id)
|
||||
public async Task<IResponseDataModel<UtilisateurOutputDto>> GetById(int id)
|
||||
{
|
||||
var utililisateur = await _repositoryUtilisateur.GetByIdAsync(id);
|
||||
return new ResponseDataModel<Utilisateur>
|
||||
var utilisateurOutput = _mapper.Map<UtilisateurOutputDto>(utililisateur);
|
||||
return new ResponseDataModel<UtilisateurOutputDto>
|
||||
{
|
||||
Success = true,
|
||||
StatusCode = 200,
|
||||
Data = utililisateur,
|
||||
Data = utilisateurOutput,
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<IResponseDataModel<UtilisateurOutputDto>> Login(UtilisateurLoginDto utilisateurInput)
|
||||
{
|
||||
var validation = new UtilisateurCreateValidator();
|
||||
var result = validation.Validate(utilisateurInput);
|
||||
if (!result.IsValid)
|
||||
{
|
||||
return new ResponseDataModel<UtilisateurOutputDto>
|
||||
{
|
||||
StatusCode = 400,
|
||||
Success = false,
|
||||
Message = "Données utilisateur invalides: " + string.Join(", ", result.Errors)
|
||||
};
|
||||
}
|
||||
|
||||
var utilisateur = await _repositoryUtilisateur.GetByEmailAsync(utilisateurInput.Email);
|
||||
|
||||
if (utilisateur == null)
|
||||
|
@ -0,0 +1,18 @@
|
||||
using FluentValidation;
|
||||
using ldap_cesi.DTOs.Inputs;
|
||||
|
||||
namespace ldap_cesi.Validator.Utilisateur;
|
||||
|
||||
public class UtilisateurCreateValidator : AbstractValidator<UtilisateurLoginDto>
|
||||
{
|
||||
public UtilisateurCreateValidator()
|
||||
{
|
||||
RuleFor(x => x.Email)
|
||||
.NotEmpty().WithMessage("L'email est requis.")
|
||||
.EmailAddress().WithMessage("L'email n'est pas valide.");
|
||||
|
||||
RuleFor(x => x.MotDePasse)
|
||||
.NotEmpty().WithMessage("Le mot de passe est requis.")
|
||||
.MinimumLength(6).WithMessage("Le mot de passe doit contenir au moins 6 caractères.");
|
||||
}
|
||||
}
|
@ -11,6 +11,8 @@
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AutoMapper" Version="14.0.0" />
|
||||
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
|
||||
<PackageReference Include="FluentValidation" Version="11.11.0" />
|
||||
<PackageReference Include="FluentValidation.AspNetCore" Version="11.3.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.2" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.2" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user