forked from sanchezvem/PyroFetes
37 lines
1.7 KiB
C#
37 lines
1.7 KiB
C#
using API.DTO.Material.Request;
|
|
using API.DTO.Material.Response;
|
|
using FastEndpoints;
|
|
|
|
namespace PyroFetes.Endpoints.Material;
|
|
|
|
public class CreateMaterialEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<CreateMaterialDto, GetMaterialDto> //Instanciation d'une connexion à la bdd dans un endpoint, utilise l'élément de requête CreateMaterialDto et l'élement de réponse GetMaterialDto
|
|
{
|
|
public override void Configure() //Configuration de l'endpoint
|
|
{
|
|
Post("Api/materials"); //Créer un matériel
|
|
AllowAnonymous();//Autorise l'accès sans authentification
|
|
}
|
|
|
|
public override async Task HandleAsync(CreateMaterialDto req, CancellationToken ct)
|
|
{
|
|
Models.Material quantity = new() //Création d'un nom, quantité et liaison de l'id de l'entrepôt rentré par l'utilisateur
|
|
{
|
|
Name = req.Label,
|
|
Quantity = req.Quantity,
|
|
WarehouseId = req.WarehouseId,
|
|
};
|
|
|
|
pyrofetesdbcontext.Materials.Add(quantity); //Ajoute quantity à la bdd
|
|
await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde les changements effectués dans la bdd
|
|
Console.WriteLine("Material added"); //Affiche Material Added si réussi
|
|
|
|
GetMaterialDto responseDto = new() //Constuire l'objet de réponse pour retourner name, quantity et warehouseId à l'utilisateur
|
|
{
|
|
Id = quantity.Id, //Affiche l'id lors de la réponse
|
|
WarehouseId = quantity.WarehouseId, //Affiche le label lors de la réponse
|
|
Label = req.Label, //Affiche le label lors de la réponse
|
|
};
|
|
|
|
await Send.OkAsync(responseDto, ct); //Envoie de la réponse réussite 200 au client
|
|
}
|
|
} |