using API.DTO.Movement.Request; using API.DTO.Movement.Response; using FastEndpoints; namespace PyroFetes.Endpoints.Movement; public class CreateMovementEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint //Instanciation d'une connexion à la bdd dans un endpoint, utilise l'élément de requête CreateMovementDto et l'élement de réponse GetMovementDto { public override void Configure() //Configuration de l'endpoint { Post("/api/movements"); //Créer un mouvement AllowAnonymous(); //Autorise l'accès sans authentification } public override async Task HandleAsync(CreateMovementDto req, CancellationToken ct) { Models.Movement movement = new () //Création d'une date, d'une date de départ, d'arrivée et d'une quantité rentré par l'utilisateur { Date = req.Date, Start = req.Start, Arrival = req.Arrival, Quantity = req.Quantity }; pyrofetesdbcontext.Movements.Add(movement); //Ajoute movement à la bdd await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde les changements effectués dans la bdd Console.WriteLine("Movement créée avec succès !"); //Affiche Movement créée avec succès ! si réussi GetMovementDto responseDto = new () //Constuire l'objet de réponse pour retourner les informations à l'utilisateur { Date = req.Date, //Affiche date lors de la réponse Start = req.Start, //Affiche start lors de la réponse Arrival = req.Arrival, //Affiche arrival lors de la réponse Quantity = req.Quantity //Affiche quantity lors de la réponse }; await Send.OkAsync(responseDto, ct); //Envoie de la réponse réussite 200 au client } }