forked from sanchezvem/PyroFetes
34 lines
1.4 KiB
C#
34 lines
1.4 KiB
C#
using API.DTO.Effect.Request;
|
|
using API.DTO.Effect.Response;
|
|
using FastEndpoints;
|
|
|
|
namespace PyroFetes.Endpoints.Effect;
|
|
|
|
public class CreateEffectEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<CreateEffectDto, GetEffectDto> //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
|
|
}
|
|
} |