diff --git a/ldap-cesi/Configurations/Conf.cs b/ldap-cesi/Configurations/Conf.cs index 32e91c3..0798afe 100644 --- a/ldap-cesi/Configurations/Conf.cs +++ b/ldap-cesi/Configurations/Conf.cs @@ -42,7 +42,7 @@ public static class Conf public static void AddServices(this WebApplicationBuilder builder) { builder.Services.AddScoped(); - // builder.Services.AddScoped(); + builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/ldap-cesi/Controllers/SalarieController.cs b/ldap-cesi/Controllers/SalarieController.cs index 63d9120..3928aa0 100644 --- a/ldap-cesi/Controllers/SalarieController.cs +++ b/ldap-cesi/Controllers/SalarieController.cs @@ -16,7 +16,7 @@ public class SalarieController : ControllerBase _salarieService = salarieService; } - /// + /// /// Endpoint qui retourne tous les salariés. /// /// Une liste de salariés. @@ -25,6 +25,17 @@ public class SalarieController : ControllerBase { var result = await _salarieService.GetAll(); return result.Success ? Ok(result.Data) : BadRequest(result.Message); + } + + /// + /// Endpoint qui retourne tous les salariés. + /// + /// Une liste de salariés. + [HttpGet("/complete")] + public async Task GetAllSalariesComplet() + { + var result = await _salarieService.GetAllWithoutIService(); + return result.Success ? Ok(result.Data) : BadRequest(result.Message); } /// @@ -33,7 +44,7 @@ public class SalarieController : ControllerBase /// L'ID du salarié. /// Le salarié correspondant à l'ID. [HttpGet("{id}")] - public async Task GetSalarieById(int id) + public async Task GetById(int id) { var result = await _salarieService.GetById(id); return result.Success ? Ok(result.Data) : BadRequest(result.Message); @@ -45,6 +56,7 @@ public class SalarieController : ControllerBase /// L'ID du salarié. /// Le salarié correspondant à l'ID. [HttpGet("/complet/{id}")] + [Authorize(Roles = "admin")] public async Task GetSalarieCompletById(int id) { var result = await _salarieService.GetCompletById(id); diff --git a/ldap-cesi/Controllers/ServicesController.cs b/ldap-cesi/Controllers/ServicesController.cs index d9c3c84..8f2ec66 100644 --- a/ldap-cesi/Controllers/ServicesController.cs +++ b/ldap-cesi/Controllers/ServicesController.cs @@ -21,7 +21,6 @@ public class ServicesController : ControllerBase /// /// Retourne tous les services. [HttpGet] - [Authorize(Roles = "admin")] public async Task GetServices() { var result = await _serviceService.GetAll(); @@ -34,7 +33,6 @@ public class ServicesController : ControllerBase /// L'ID du service. /// Le service correspondant à l'ID. [HttpGet("{id}")] - [Authorize(Roles = "admin")] public async Task GetServiceById(int id) { var result = await _serviceService.GetById(id); @@ -50,7 +48,7 @@ public class ServicesController : ControllerBase [Authorize(Roles = "admin")] public async Task CreateService([FromBody] ServiceCreateDto serviceInputDto) { - var result = await _serviceService.CreateService(serviceInputDto); + var result = await _serviceService.Create(serviceInputDto); return result.Success ? Ok(result.Data) : BadRequest(result.Message); } @@ -63,7 +61,7 @@ public class ServicesController : ControllerBase [Authorize(Roles = "admin")] public async Task UpdateService([FromBody] ServiceUpdateDto serviceUpdateDto) { - var result = await _serviceService.UpdateService(serviceUpdateDto); + var result = await _serviceService.Update(serviceUpdateDto); return result.Success ? Ok(result.Data) : BadRequest(result.Message); } @@ -76,7 +74,7 @@ public class ServicesController : ControllerBase [Authorize(Roles = "admin")] public async Task DeleteService(int id) { - var result = await _serviceService.DeleteService(id); + var result = await _serviceService.Delete(id); return result.Success ? Ok(result.Message) : BadRequest(result.Message); } } \ No newline at end of file diff --git a/ldap-cesi/DTOs/Generic/SalarieDto.cs b/ldap-cesi/DTOs/Generic/SalarieDto.cs new file mode 100644 index 0000000..542bd7c --- /dev/null +++ b/ldap-cesi/DTOs/Generic/SalarieDto.cs @@ -0,0 +1,19 @@ +namespace ldap_cesi.DTOs; + +public class SalarieDto +{ + public int Id { get; set; } + + public string Nom { get; set; } = null!; + + public string Prenom { get; set; } = null!; + + public string TelephoneFixe { get; set; } = null!; + + public string TelephonePortable { get; set; } = null!; + + public string Email { get; set; } = null!; + + public ServiceDto Service { get; set; } + public SiteDto Site { get; set; } +} \ No newline at end of file diff --git a/ldap-cesi/Services/Interfaces/IRoleService.cs b/ldap-cesi/Services/Interfaces/IRoleService.cs index b558e3b..e4b46ab 100644 --- a/ldap-cesi/Services/Interfaces/IRoleService.cs +++ b/ldap-cesi/Services/Interfaces/IRoleService.cs @@ -1,6 +1,13 @@ -namespace ldap_cesi.Services.Interfaces; +using ldap_cesi.Repository.Services; +using ldap_cesi.Services.Interfaces; +using ldap_cesi.Entities; +using ldap_cesi.DTOs; +using ldap_cesi.DTOs.Inputs.Role; +using AutoMapper; -public interface IRoleService +namespace ldap_cesi.Services.Interfaces { - + public interface IRoleService : IServiceBase + { + } } \ No newline at end of file diff --git a/ldap-cesi/Services/Interfaces/ISalarieService.cs b/ldap-cesi/Services/Interfaces/ISalarieService.cs index 5318fa7..893a742 100644 --- a/ldap-cesi/Services/Interfaces/ISalarieService.cs +++ b/ldap-cesi/Services/Interfaces/ISalarieService.cs @@ -1,3 +1,4 @@ +using ldap_cesi.DTOs; using ldap_cesi.DTOs.Inputs.Salarie; using ldap_cesi.DTOs.Inputs.Service; using ldap_cesi.DTOs.Outputs.Salarie; @@ -6,14 +7,10 @@ using ldap_cesi.Models; namespace ldap_cesi.Services.Interfaces; -public interface ISalarieService +public interface ISalarieService : IServiceBase { - Task>> GetAll(); - Task> GetById(int id); + Task>> GetAllWithoutIService(); Task>> GetSalariesBySite(int siteId); Task>> GetSalariesByService(int serviceId); - Task> Create(SalarieCreateDto salarieInput); - Task> Update(SalarieUpdateDto salarieInput); - Task> Delete(int id); Task> GetCompletById(int id); } \ No newline at end of file diff --git a/ldap-cesi/Services/Interfaces/IServiceService.cs b/ldap-cesi/Services/Interfaces/IServiceService.cs index 4247928..4cd3a7c 100644 --- a/ldap-cesi/Services/Interfaces/IServiceService.cs +++ b/ldap-cesi/Services/Interfaces/IServiceService.cs @@ -1,14 +1,11 @@ using ldap_cesi.DTOs.Inputs.Service; +using ldap_cesi.DTOs; using ldap_cesi.Entities; using ldap_cesi.Models; -namespace ldap_cesi.Services.Interfaces; - -public interface IServiceService +namespace ldap_cesi.Services.Interfaces { - Task>> GetAll(); - Task> GetById(int id); - Task> CreateService(ServiceCreateDto serviceCreateDto); - Task> UpdateService(ServiceUpdateDto serviceUpdateDto); - Task> DeleteService(int id); -} \ No newline at end of file + public interface IServiceService : IServiceBase + { + } +} diff --git a/ldap-cesi/Services/JwtService.cs b/ldap-cesi/Services/JwtService.cs index 085d41e..8ef0ec2 100644 --- a/ldap-cesi/Services/JwtService.cs +++ b/ldap-cesi/Services/JwtService.cs @@ -60,7 +60,7 @@ public class JwtService : IJwtService } catch (Exception ex) { - _logger.LogError(ex, "An error occurred while generating the JWT token."); + _logger.LogError(ex, "Une erreur s'est produitel lors de la génération du token."); throw; } } @@ -74,7 +74,7 @@ public class JwtService : IJwtService } catch (Exception ex) { - _logger.LogError(ex, "An error occurred while retrieving the public key."); + _logger.LogError(ex, "Une erreur s'est produite pendant la récupération de la clé."); throw; } } @@ -100,14 +100,14 @@ public class JwtService : IJwtService var nameIdClaim = principal.FindFirst(ClaimTypes.NameIdentifier); if (nameIdClaim == null || !int.TryParse(nameIdClaim.Value, out var tokenUserId) || tokenUserId != userId) { - _logger.LogWarning("Token validation failed: Invalid user ID."); + _logger.LogWarning("Erreur de validation : Id utilisateur invalide."); return false; } var utilisateur = await _context.Utilisateurs.FindAsync(userId); if (utilisateur == null) { - _logger.LogWarning("Token validation failed: User not found."); + _logger.LogWarning("Erreur de validation : Utilisateur non trouvé."); return false; } @@ -119,7 +119,7 @@ public class JwtService : IJwtService } catch (Exception ex) { - _logger.LogError(ex, "An error occurred while validating the JWT token."); + _logger.LogError(ex, "Une erreur s'est produite lors pendant la validation du token JWT."); return false; } } diff --git a/ldap-cesi/Services/RoleService.cs b/ldap-cesi/Services/RoleService.cs index b388bae..43eba92 100644 --- a/ldap-cesi/Services/RoleService.cs +++ b/ldap-cesi/Services/RoleService.cs @@ -1,15 +1,16 @@ using ldap_cesi.Repository.Services; using ldap_cesi.Services.Interfaces; +using ldap_cesi.Entities; +using ldap_cesi.DTOs; +using ldap_cesi.DTOs.Inputs.Role; +using AutoMapper; namespace ldap_cesi.Services; -public class RoleService : IRoleService +public class RoleService : ServiceBase,IRoleService { - private IRepositoryRole _repositoryRole; - - public RoleService(IRepositoryRole repositoryRole) + public RoleService(IRepositoryRole repositoryRole, IMapper mapper, ILogger logger) + : base(repositoryRole, mapper, logger) { - _repositoryRole = repositoryRole; } - } \ No newline at end of file diff --git a/ldap-cesi/Services/SalarieService.cs b/ldap-cesi/Services/SalarieService.cs index 69c8108..1d8a393 100644 --- a/ldap-cesi/Services/SalarieService.cs +++ b/ldap-cesi/Services/SalarieService.cs @@ -1,4 +1,5 @@ using AutoMapper; +using ldap_cesi.DTOs; using ldap_cesi.DTOs.Inputs.Salarie; using ldap_cesi.DTOs.Inputs.Service; using ldap_cesi.DTOs.Outputs.Salarie; @@ -10,14 +11,14 @@ using ldap_cesi.Validator.Salarie; namespace ldap_cesi.Services; -public class SalarieService : ISalarieService +public class SalarieService : ServiceBase, ISalarieService { private IRepositorySalarie _repositorySalarie; private readonly IRepositorySite _repositorySite; private readonly IRepositoryService _repositoryService; private readonly IMapper _mapper; - public SalarieService(IRepositorySalarie repositorySalarie, IMapper mapper, IRepositorySite repositorySite, IRepositoryService repositoryService) + public SalarieService(IRepositorySalarie repositorySalarie, IMapper mapper, IRepositorySite repositorySite, IRepositoryService repositoryService, ILogger logger) : base(repositorySalarie, mapper, logger) { _repositorySalarie = repositorySalarie; _repositorySite = repositorySite; @@ -25,7 +26,7 @@ public class SalarieService : ISalarieService _mapper = mapper; } - public async Task>> GetAll() + public async Task>> GetAllWithoutIService() { var salaries = await _repositorySalarie.GetAllAsync(); return new ResponseDataModel> @@ -36,16 +37,16 @@ public class SalarieService : ISalarieService }; } - public async Task> GetById(int id) - { - var salarie = await _repositorySalarie.GetSalarieWithRelationsAsync(id); - return new ResponseDataModel - { - Success = true, - Data = salarie, - StatusCode = 200, - }; - } + // public async Task> GetById(int id) + // { + // var salarie = await _repositorySalarie.GetSalarieWithRelationsAsync(id); + // return new ResponseDataModel + // { + // Success = true, + // Data = salarie, + // StatusCode = 200, + // }; + // } public async Task> GetCompletById(int id) { @@ -131,109 +132,109 @@ public class SalarieService : ISalarieService }; } - public async Task> Create(SalarieCreateDto salarieInput) - { - var validation = new SalarieCreateValidator(); - var result = validation.Validate(salarieInput); - if (!result.IsValid) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Données salariées invalides: " + string.Join(", ", result.Errors) - }; - } - var service = _mapper.Map(salarieInput); - var response = await _repositorySalarie.AddAsync(service); - return new ResponseDataModel - { - StatusCode = 201, - Success = true, - Data = response.Id.ToString(), - }; - } + // public async Task> Create(SalarieCreateDto salarieInput) + // { + // var validation = new SalarieCreateValidator(); + // var result = validation.Validate(salarieInput); + // if (!result.IsValid) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Données salariées invalides: " + string.Join(", ", result.Errors) + // }; + // } + // var service = _mapper.Map(salarieInput); + // var response = await _repositorySalarie.AddAsync(service); + // return new ResponseDataModel + // { + // StatusCode = 201, + // Success = true, + // Data = response.Id.ToString(), + // }; + // } - public async Task> Update(SalarieUpdateDto salarieInput) - { - var validation = new SalarieUpdateValidator(); - var result = validation.Validate(salarieInput); - if (!result.IsValid) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Données salariées invalides: " + string.Join(", ", result.Errors) - }; - } + // public async Task> Update(SalarieUpdateDto salarieInput) + // { + // var validation = new SalarieUpdateValidator(); + // var result = validation.Validate(salarieInput); + // if (!result.IsValid) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Données salariées invalides: " + string.Join(", ", result.Errors) + // }; + // } - var salarieFind = await _repositorySalarie.GetByIdAsync(salarieInput.Id); - if (salarieFind == null) - { - return new ResponseDataModel - { - Success = false, - Message = "Salarié introuvable.", - StatusCode = 404 - }; - } + // var salarieFind = await _repositorySalarie.GetByIdAsync(salarieInput.Id); + // if (salarieFind == null) + // { + // return new ResponseDataModel + // { + // Success = false, + // Message = "Salarié introuvable.", + // StatusCode = 404 + // }; + // } - var salarie = _mapper.Map(salarieInput, salarieFind); - var response = await _repositorySalarie.UpdateAsync(salarie); - if (!response) - { - return new ResponseDataModel - { - StatusCode = 500, - Success = false, - Message = "Erreur lors de la mise à jour du salarié : " + string.Join(", ", result.Errors) - }; - } - return new ResponseDataModel - { - StatusCode = 200, - Success = true, - Data = salarie, - }; - } + // var salarie = _mapper.Map(salarieInput, salarieFind); + // var response = await _repositorySalarie.UpdateAsync(salarie); + // if (!response) + // { + // return new ResponseDataModel + // { + // StatusCode = 500, + // Success = false, + // Message = "Erreur lors de la mise à jour du salarié : " + string.Join(", ", result.Errors) + // }; + // } + // return new ResponseDataModel + // { + // StatusCode = 200, + // Success = true, + // Data = salarie, + // }; + // } - public async Task> Delete(int id) - { - if (id == null) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Id manquant" - }; - } - var salarie = await _repositorySalarie.GetByIdAsync(id); - if (salarie == null) - { - return new ResponseDataModel - { - Success = false, - Message = "Salarié introuvable.", - StatusCode = 404 - }; - } - var response = await _repositorySalarie.DeleteAsync(salarie); - if (!response) - { - return new ResponseDataModel - { - StatusCode = 500, - Success = false, - Message = "Erreur durant la suppression du service" - }; - } - return new ResponseDataModel - { - StatusCode = 200, - Success = true, - Data = salarie.Id.ToString(), - }; - } + // public async Task> Delete(int id) + // { + // if (id == null) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Id manquant" + // }; + // } + // var salarie = await _repositorySalarie.GetByIdAsync(id); + // if (salarie == null) + // { + // return new ResponseDataModel + // { + // Success = false, + // Message = "Salarié introuvable.", + // StatusCode = 404 + // }; + // } + // var response = await _repositorySalarie.DeleteAsync(salarie); + // if (!response) + // { + // return new ResponseDataModel + // { + // StatusCode = 500, + // Success = false, + // Message = "Erreur durant la suppression du service" + // }; + // } + // return new ResponseDataModel + // { + // StatusCode = 200, + // Success = true, + // Data = salarie.Id.ToString(), + // }; + // } } \ No newline at end of file diff --git a/ldap-cesi/Services/ServiceService.cs b/ldap-cesi/Services/ServiceService.cs index 608496f..7cb9b6e 100644 --- a/ldap-cesi/Services/ServiceService.cs +++ b/ldap-cesi/Services/ServiceService.cs @@ -5,146 +5,144 @@ using ldap_cesi.Models; using ldap_cesi.Repository.Services; using ldap_cesi.Services.Interfaces; using ldap_cesi.Validator.Service; +using ldap_cesi.DTOs; +using ldap_cesi.DTOs.Inputs.Service; namespace ldap_cesi.Services; -public class ServiceService : IServiceService +public class ServiceService : ServiceBase, IServiceService { - private readonly IRepositoryService _repositoryService; - private readonly IMapper _mapper; - public ServiceService(IRepositoryService repositoryService, IMapper mapper) + public ServiceService(IRepositoryService repositoryService, IMapper mapper, ILogger logger) : base(repositoryService, mapper, logger) { - _repositoryService = repositoryService; - _mapper = mapper; } - public async Task>> GetAll() - { - var services = await _repositoryService.GetAllAsync(); - return new ResponseDataModel> - { - Success = true, - Data = services, - StatusCode = 200, - }; - } + // public async Task>> GetAll() + // { + // var services = await _repositoryService.GetAllAsync(); + // return new ResponseDataModel> + // { + // Success = true, + // Data = services, + // StatusCode = 200, + // }; + // } - public async Task> GetById(int id) - { - var service = await _repositoryService.GetByIdAsync(id); - return new ResponseDataModel - { - Success = true, - Data = service, - StatusCode = 200, - }; - } + // public async Task> GetById(int id) + // { + // var service = await _repositoryService.GetByIdAsync(id); + // return new ResponseDataModel + // { + // Success = true, + // Data = service, + // StatusCode = 200, + // }; + // } - public async Task> CreateService(ServiceCreateDto serviceCreateDto) - { - var validation = new ServiceCreateValidator(); - var result = validation.Validate(serviceCreateDto); - if (!result.IsValid) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Données du service invalides: " + string.Join(", ", result.Errors) - }; - } - var service = _mapper.Map(serviceCreateDto); - var response = await _repositoryService.AddAsync(service); - return new ResponseDataModel - { - StatusCode = 201, - Success = true, - Data = response.Id.ToString(), - }; - } + // public async Task> CreateService(ServiceCreateDto serviceCreateDto) + // { + // var validation = new ServiceCreateValidator(); + // var result = validation.Validate(serviceCreateDto); + // if (!result.IsValid) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Données du service invalides: " + string.Join(", ", result.Errors) + // }; + // } + // var service = _mapper.Map(serviceCreateDto); + // var response = await _repositoryService.AddAsync(service); + // return new ResponseDataModel + // { + // StatusCode = 201, + // Success = true, + // Data = response.Id.ToString(), + // }; + // } - public async Task> UpdateService(ServiceUpdateDto serviceUpdateDto) - { - var validation = new ServiceUpdateValidator(); - var result = validation.Validate(serviceUpdateDto); - if (!result.IsValid) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Données du service invalides: " + string.Join(", ", result.Errors) - }; - } - var serviceFind = await _repositoryService.GetByIdAsync(serviceUpdateDto.Id); - if (serviceFind is null) - { - return new ResponseDataModel - { - Success = false, - Message = "Service introuvable.", - StatusCode = 404 - }; - } + // public async Task> UpdateService(ServiceUpdateDto serviceUpdateDto) + // { + // var validation = new ServiceUpdateValidator(); + // var result = validation.Validate(serviceUpdateDto); + // if (!result.IsValid) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Données du service invalides: " + string.Join(", ", result.Errors) + // }; + // } + // var serviceFind = await _repositoryService.GetByIdAsync(serviceUpdateDto.Id); + // if (serviceFind is null) + // { + // return new ResponseDataModel + // { + // Success = false, + // Message = "Service introuvable.", + // StatusCode = 404 + // }; + // } - var service = _mapper.Map(serviceUpdateDto, serviceFind); - var response = await _repositoryService.UpdateAsync(service); - if (!response) - { - return new ResponseDataModel - { - StatusCode = 500, - Success = false, - Message = "Erreur lors de la mise à jour du service : " + string.Join(", ", result.Errors) - }; - } - return new ResponseDataModel - { - StatusCode = 200, - Success = true, - Data = service, - }; - } + // var service = _mapper.Map(serviceUpdateDto, serviceFind); + // var response = await _repositoryService.UpdateAsync(service); + // if (!response) + // { + // return new ResponseDataModel + // { + // StatusCode = 500, + // Success = false, + // Message = "Erreur lors de la mise à jour du service : " + string.Join(", ", result.Errors) + // }; + // } + // return new ResponseDataModel + // { + // StatusCode = 200, + // Success = true, + // Data = service, + // }; + // } - public async Task> DeleteService(int idService) - { - if (idService == null) - { - return new ResponseDataModel - { - StatusCode = 400, - Success = false, - Message = "Id manquant" - }; - } + // public async Task> DeleteService(int idService) + // { + // if (idService == null) + // { + // return new ResponseDataModel + // { + // StatusCode = 400, + // Success = false, + // Message = "Id manquant" + // }; + // } - var service = await _repositoryService.GetByIdAsync(idService); - if (service == null) - { - return new ResponseDataModel - { - Success = false, - Message = "Service introuvable.", - StatusCode = 404 - }; - } - var response = await _repositoryService.DeleteAsync(service); - if (!response) - { - return new ResponseDataModel - { - StatusCode = 500, - Success = false, - Message = "Erreur durant la suppression du service" - }; - } - return new ResponseDataModel - { - StatusCode = 200, - Success = true, - Data = service.Id.ToString(), - }; - } + // var service = await _repositoryService.GetByIdAsync(idService); + // if (service == null) + // { + // return new ResponseDataModel + // { + // Success = false, + // Message = "Service introuvable.", + // StatusCode = 404 + // }; + // } + // var response = await _repositoryService.DeleteAsync(service); + // if (!response) + // { + // return new ResponseDataModel + // { + // StatusCode = 500, + // Success = false, + // Message = "Erreur durant la suppression du service" + // }; + // } + // return new ResponseDataModel + // { + // StatusCode = 200, + // Success = true, + // Data = service.Id.ToString(), + // }; + // } } \ No newline at end of file diff --git a/ldap-cesi/ldap-cesi.csproj b/ldap-cesi/ldap-cesi.csproj index 5070353..9ef0878 100644 --- a/ldap-cesi/ldap-cesi.csproj +++ b/ldap-cesi/ldap-cesi.csproj @@ -5,6 +5,7 @@ enable enable ldap_cesi + CS0472,CS1591,CS1587 true