Files
PyroFetes-Sujet1/PyroFetes/Endpoints/DeliveryNotes/GetDeliveryNoteEndpoint.cs
2025-11-14 18:11:54 +01:00

35 lines
1.0 KiB
C#

using FastEndpoints;
using PyroFetes.DTO.DeliveryNote.Response;
using PyroFetes.Models;
using PyroFetes.Repositories;
using PyroFetes.Specifications.DeliveryNotes;
namespace PyroFetes.Endpoints.DeliveryNotes;
public class GetDeliveryNoteRequest
{
public int DeliveryNoteId { get; set; }
}
public class GetDeliveryNoteEndpoint(
DeliveryNotesRepository deliveryNotesRepository,
AutoMapper.IMapper mapper) : Endpoint<GetDeliveryNoteRequest, GetDeliveryNoteDto>
{
public override void Configure()
{
Get("/api/deliveryNote/{@id}", x=> new {x.DeliveryNoteId});
AllowAnonymous();
}
public override async Task HandleAsync(GetDeliveryNoteRequest req, CancellationToken ct)
{
DeliveryNote? deliveryNote = await deliveryNotesRepository.FirstOrDefaultAsync(new GetDeliveryNoteByIdSpec(req.DeliveryNoteId), ct);
if (deliveryNote == null)
{
await Send.NotFoundAsync(ct);
return;
}
await Send.OkAsync(mapper.Map<GetDeliveryNoteDto>(deliveryNote), ct);
}
}