using API.DTO.Warehouse.Response; using FastEndpoints; using Microsoft.EntityFrameworkCore; namespace PyroFetes.Endpoints.Warehouse; public class GetWarehouseRequest { public int Id { get; set; } } public class GetWarehouseEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint { public override void Configure() { Get("/api/warehouses/{@id}", x => new { x.Id }); AllowAnonymous(); } public override async Task HandleAsync(GetWarehouseRequest req, CancellationToken ct) { Models.Warehouse? warehouse = await pyrofetesdbcontext .Warehouses .SingleOrDefaultAsync(w => w.Id == req.Id, cancellationToken: ct); if (warehouse == null) { Console.WriteLine($"Aucun entrepôt avec l'ID {req.Id} trouvé."); await Send.NotFoundAsync(ct); return; } GetWarehouseDto responseDto = new() { Id = warehouse.Id, Name = warehouse.Name!, MaxWeight = warehouse.MaxWeight, Current = warehouse.Current, MinWeight = warehouse.MinWeight, Adress = warehouse.Address!, ZipCode = warehouse.ZipCode, City = warehouse.City! }; await Send.OkAsync(responseDto, ct); } }