- Endpoints fini..

This commit is contained in:
BuzzLeclair 2025-03-06 00:12:23 +01:00
parent 37eca08753
commit 285063ebcd
8 changed files with 58 additions and 7 deletions

View File

@ -37,6 +37,18 @@ public class ServicesController : ControllerBase
{ {
var result = await _serviceService.GetById(id); var result = await _serviceService.GetById(id);
return result.Success ? Ok(result.Data) : BadRequest(result.Message); return result.Success ? Ok(result.Data) : BadRequest(result.Message);
}
/// <summary>
/// Endpoint qui retourne le service et ses salariés correspondant à l'id en paramètre.
/// </summary>
/// <param name="id">L'ID du service.</param>
/// <returns>Le service correspondant à l'ID, avec ses salariés</returns>
[HttpGet("complete/{id}")]
public async Task<IActionResult> GetServiceByIdWithSalaries(int id)
{
var result = await _serviceService.GetByIdWithRelations(id, s=>s.Salaries);
return result.Success ? Ok(result.Data) : BadRequest(result.Message);
} }
/// <summary> /// <summary>

View File

@ -41,6 +41,19 @@ public class SiteController : ControllerBase
{ {
var result = await _siteService.GetById(id); var result = await _siteService.GetById(id);
return result.Success ? Ok(result) : BadRequest(result); return result.Success ? Ok(result) : BadRequest(result);
}
// GET: api/site/{id}
/// <summary>
/// Récupère un site et ses salariés spécifique par son identifiant.
/// </summary>
/// <param name="id">L'identifiant du site à récupérer.</param>
/// <returns>Retourne le site et ses salariés</returns>
[HttpGet("/complete/{id}")]
public async Task<ActionResult> GetSiteWithClient(int id)
{
var result = await _siteService.GetByIdWithRelations(id, s => s.Salaries);
return result.Success ? Ok(result) : BadRequest(result);
} }
// POST: api/site // POST: api/site

View File

@ -1,3 +1,5 @@
using ldap_cesi.DTOs.Outputs.Salarie;
namespace ldap_cesi.DTOs; namespace ldap_cesi.DTOs;
public class ServiceDto public class ServiceDto
@ -5,4 +7,5 @@ public class ServiceDto
public int Id { get; set; } public int Id { get; set; }
public string Nom { get; set; } public string Nom { get; set; }
public List<SalarieMinimalDto> Salaries { get; set; }
} }

View File

@ -1,3 +1,5 @@
using ldap_cesi.DTOs.Outputs.Salarie;
namespace ldap_cesi.DTOs; namespace ldap_cesi.DTOs;
public class SiteDto public class SiteDto
@ -5,4 +7,5 @@ public class SiteDto
public int Id { get; set; } public int Id { get; set; }
public string Ville { get; set; } public string Ville { get; set; }
public ICollection<SalarieMinimalDto> Salaries { get; set; }
} }

View File

@ -0,0 +1,17 @@
namespace ldap_cesi.DTOs.Outputs.Salarie;
public class SalarieMinimalDto
{
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!;
}

View File

@ -35,8 +35,10 @@ public class AutoMapperProfile : Profile
.ForMember(dest => dest.Service, opt => opt.MapFrom(src => src.IdServiceNavigation)) .ForMember(dest => dest.Service, opt => opt.MapFrom(src => src.IdServiceNavigation))
.ForMember(dest => dest.Site, opt => opt.MapFrom(src => src.IdSiteNavigation)); .ForMember(dest => dest.Site, opt => opt.MapFrom(src => src.IdSiteNavigation));
CreateMap<Service, ServiceDto>(); CreateMap<Service, ServiceDto>();
CreateMap<Site, SiteDto>(); CreateMap<Site, SiteDto>()
.ForMember(dest => dest.Salaries, opt => opt.MapFrom(src => src.Salaries));
CreateMap<Salarie, SalarieListDto>(); CreateMap<Salarie, SalarieListDto>();
CreateMap<Salarie, SalarieMinimalDto>();
CreateMap<Salarie, SalarieListDto>() CreateMap<Salarie, SalarieListDto>()
.ForMember(dest => dest.Service, opt => opt.MapFrom(src => src.IdServiceNavigation.Nom)) .ForMember(dest => dest.Service, opt => opt.MapFrom(src => src.IdServiceNavigation.Nom))
.ForMember(dest => dest.Site, opt => opt.MapFrom(src => src.IdSiteNavigation.Ville)); .ForMember(dest => dest.Site, opt => opt.MapFrom(src => src.IdSiteNavigation.Ville));

View File

@ -1,11 +1,11 @@
using ldap_cesi.DTOs.Inputs.Service; using ldap_cesi.DTOs;
using ldap_cesi.DTOs.Inputs.Site; using ldap_cesi.DTOs.Inputs.Site;
using ldap_cesi.Entities; using ldap_cesi.Entities;
using ldap_cesi.Models; using ldap_cesi.Models;
namespace ldap_cesi.Services.Interfaces; namespace ldap_cesi.Services.Interfaces;
public interface ISiteService public interface ISiteService : IServiceBase<Site, SiteDto, SiteCreateDto, SiteUpdateDto>
{ {
Task<IResponseDataModel<List<Site>>> GetAll(); Task<IResponseDataModel<List<Site>>> GetAll();
Task<IResponseDataModel<Site>> GetById(int id); Task<IResponseDataModel<Site>> GetById(int id);

View File

@ -1,4 +1,5 @@
using AutoMapper; using AutoMapper;
using ldap_cesi.DTOs;
using ldap_cesi.DTOs.Inputs.Site; using ldap_cesi.DTOs.Inputs.Site;
using ldap_cesi.Entities; using ldap_cesi.Entities;
using ldap_cesi.Models; using ldap_cesi.Models;
@ -8,16 +9,16 @@ using ldap_cesi.Validator.Site;
namespace ldap_cesi.Services; namespace ldap_cesi.Services;
public class SiteService : ISiteService public class SiteService : ServiceBase<Site, SiteDto, SiteCreateDto, SiteUpdateDto>, ISiteService
{ {
private readonly IRepositorySite _repositorySite; private readonly IRepositorySite _repositorySite;
private readonly IMapper _mapper;
public SiteService(IRepositorySite repositorySite, IMapper mapper) public SiteService(IRepositorySite repositorySite, IMapper mapper,
ILogger<SiteService> logger, SiteCreateValidator siteCreateValidator, SiteUpdateValidator siteUpdateValidator)
: base(repositorySite, mapper, logger, siteCreateValidator, siteUpdateValidator )
{ {
_repositorySite = repositorySite; _repositorySite = repositorySite;
_mapper = mapper;
} }
public async Task<IResponseDataModel<List<Site>>> GetAll() public async Task<IResponseDataModel<List<Site>>> GetAll()