using API.DTO.Effect.Request; using API.DTO.Effect.Response; using FastEndpoints; namespace PyroFetes.Endpoints.Effect; public class CreateEffectEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint //Instanciation d'une connexion à la bdd dans un endpoint, utilise l'élément de requête CreateEffectDto et l'élement de réponse GetEffectDto { public override void Configure() //Configuration de l'endpoint { Post("Api/effects"); //Créer un effet AllowAnonymous(); //Autorise l'accès sans authentification } public override async Task HandleAsync(CreateEffectDto req, CancellationToken ct) { Models.Effect effect = new() //Création d'un label rentré par l'utilisateur { Label = req.Label, }; pyrofetesdbcontext.Effects.Add(effect); //Ajoute effect à la bdd await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde les changements effectués dans la bdd Console.WriteLine("Effect added"); //Affiche Effect added si réussi GetEffectDto responseDto = new() //Constuire l'objet de réponse pour retourner id et label à l'utilisateur { Id = effect.Id, //Affiche l'id 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 } }