- 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);
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>

View File

@ -41,6 +41,19 @@ public class SiteController : ControllerBase
{
var result = await _siteService.GetById(id);
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

View File

@ -1,3 +1,5 @@
using ldap_cesi.DTOs.Outputs.Salarie;
namespace ldap_cesi.DTOs;
public class ServiceDto
@ -5,4 +7,5 @@ public class ServiceDto
public int Id { 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;
public class SiteDto
@ -5,4 +7,5 @@ public class SiteDto
public int Id { 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.Site, opt => opt.MapFrom(src => src.IdSiteNavigation));
CreateMap<Service, ServiceDto>();
CreateMap<Site, SiteDto>();
CreateMap<Site, SiteDto>()
.ForMember(dest => dest.Salaries, opt => opt.MapFrom(src => src.Salaries));
CreateMap<Salarie, SalarieListDto>();
CreateMap<Salarie, SalarieMinimalDto>();
CreateMap<Salarie, SalarieListDto>()
.ForMember(dest => dest.Service, opt => opt.MapFrom(src => src.IdServiceNavigation.Nom))
.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.Entities;
using ldap_cesi.Models;
namespace ldap_cesi.Services.Interfaces;
public interface ISiteService
public interface ISiteService : IServiceBase<Site, SiteDto, SiteCreateDto, SiteUpdateDto>
{
Task<IResponseDataModel<List<Site>>> GetAll();
Task<IResponseDataModel<Site>> GetById(int id);

View File

@ -1,4 +1,5 @@
using AutoMapper;
using ldap_cesi.DTOs;
using ldap_cesi.DTOs.Inputs.Site;
using ldap_cesi.Entities;
using ldap_cesi.Models;
@ -8,16 +9,16 @@ using ldap_cesi.Validator.Site;
namespace ldap_cesi.Services;
public class SiteService : ISiteService
public class SiteService : ServiceBase<Site, SiteDto, SiteCreateDto, SiteUpdateDto>, ISiteService
{
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;
_mapper = mapper;
}
public async Task<IResponseDataModel<List<Site>>> GetAll()