commentaire endpoint

This commit is contained in:
2025-11-05 22:38:55 +01:00
parent 4c0e7df9de
commit 3c32baac57
45 changed files with 475 additions and 479 deletions

View File

@@ -4,32 +4,32 @@ using PyroFetes.DTO.Brand.Request;
namespace PyroFetes.Endpoints.Brand;
public class CreateBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<CreateBrandDto, GetBrandDto>
public class CreateBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<CreateBrandDto, GetBrandDto> //Instanciation d'une connexion à la bdd dans un endpoint, utilise l'élément de requête CreateBrandDto et l'élement de réponse GetBrandDto
{
public override void Configure()
public override void Configure() //Configuration de l'endpoint
{
Post("/api/brands");
AllowAnonymous();
Post("/api/brands"); //Créer une marque
AllowAnonymous(); //Autorise l'accès sans authentification
}
public override async Task HandleAsync(CreateBrandDto req, CancellationToken ct)
public override async Task HandleAsync(CreateBrandDto req, CancellationToken ct)
{
Models.Brand brand = new ()
Models.Brand brand = new () //Création d'un nom rentré par l'utilisateur
{
Name = req.Name
};
pyrofetesdbcontext.Brands.Add(brand);
await pyrofetesdbcontext.SaveChangesAsync(ct);
pyrofetesdbcontext.Brands.Add(brand); //Ajout de la marque à la bdd
await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde de la marque dans la bdd
Console.WriteLine("Marque créé avec succès !");
GetBrandDto responseDto = new ()
GetBrandDto responseDto = new () //Renvoie le nom
{
Name = req.Name
Name = req.Name
};
await Send.OkAsync(responseDto, ct);
await Send.OkAsync(responseDto, ct); //Réponse au client
}
}

View File

@@ -5,34 +5,34 @@ namespace PyroFetes.Endpoints.Brand;
public class DeleteBrandRequest
{
public int Id { get; set; }
public int Id { get; set; } //Création d'un Id
}
public class DeleteBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<DeleteBrandRequest>
public class DeleteBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoint<DeleteBrandRequest> //Instanciation d'une connexion à la bdd dans un endpoint, utilise l'élément de requête DeleteBrandDto.
{
public override void Configure()
public override void Configure() //Configuration de l'endpoint
{
Delete("/api/brands/{@id}", x => new { x.Id });
AllowAnonymous();
Delete("/api/brands/{@id}", x => new { x.Id }); //Supprime une marque
AllowAnonymous(); //Autorise l'accès sans authentification
}
public override async Task HandleAsync(DeleteBrandRequest req, CancellationToken ct)
{
Models.Brand? brandToDelete = await pyrofetesdbcontext
.Brands
.SingleOrDefaultAsync(a => a.Id == req.Id, cancellationToken: ct);
Models.Brand? brandToDelete = await pyrofetesdbcontext //Récupère une marque dans la bdd et le stocke dans brandToDelete
.Brands //Recherche la couleur dans la table Colors
.SingleOrDefaultAsync(a => a.Id == req.Id, cancellationToken: ct); //Recherche une couleur dont l'id correspond à req.Id
if (brandToDelete == null)
{
Console.WriteLine($"Aucune marque avec l'ID {req.Id} trouvé.");
await Send.NotFoundAsync(ct);
return;
await Send.NotFoundAsync(ct); //Renvoie une erreur 404
return; //Arrêt de la méthode
}
pyrofetesdbcontext.Brands.Remove(brandToDelete);
await pyrofetesdbcontext.SaveChangesAsync(ct);
pyrofetesdbcontext.Brands.Remove(brandToDelete); //Supprime la marque de la bdd
await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde de la marque dans la bdd
await Send.NoContentAsync(ct);
await Send.NoContentAsync(ct); //Renvoie une réponse réussite 204
}
}

View File

@@ -8,21 +8,21 @@ public class GetAllBrandsEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpo
{
public override void Configure()
{
Get("/api/brands");
AllowAnonymous();
Get("/api/brands"); //Endpoint qui affiche toutes les marques
AllowAnonymous(); //Autorise l'accès sans authentification
}
public override async Task HandleAsync(CancellationToken ct)
{
List<GetBrandDto> responseDto = await pyrofetesdbcontext.Brands
.Select(a => new GetBrandDto
List<GetBrandDto> responseDto = await pyrofetesdbcontext.Brands //Création d'une liste qui récupère toutes les marques dans la bdd
.Select(a => new GetBrandDto //Sélectionne dans la liste chaque marque
{
Id = a.Id,
Name = a.Name,
Id = a.Id, //Affiche l'id
Name = a.Name, //Affiche le nom
}
).ToListAsync(ct);
).ToListAsync(ct); //Retourne la liste de marque
await Send.OkAsync(responseDto, ct);
await Send.OkAsync(responseDto, ct); //Envoie de la réponse réussite 200 au client
}
}

View File

@@ -13,30 +13,30 @@ public class GetBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) :Endpoint<G
{
public override void Configure()
{
Get("/api/brands/{@id}", x => new { x.Id });
AllowAnonymous();
Get("/api/brands/{@id}", x => new { x.Id }); //endpoint qui affiche la marque en fonction de l'id
AllowAnonymous(); //Autorise l'accès sans authentification
}
public override async Task HandleAsync(GetBrandRequest req, CancellationToken ct)
{
Models.Brand? brand = await pyrofetesdbcontext
.Brands
.SingleOrDefaultAsync(a => a.Id == req.Id, cancellationToken: ct);
Models.Brand? brand = await pyrofetesdbcontext //Récupère la table marque dans la bdd
.Brands
.SingleOrDefaultAsync(a => a.Id == req.Id, cancellationToken: ct); //récupère l'id
if (brand == null)
{
Console.WriteLine($"Aucune marque avec l'ID {req.Id} trouvé.");
await Send.NotFoundAsync(ct);
return;
await Send.NotFoundAsync(ct); //Renvoie une erreur 404
return; //Arrêt de la méthode
}
GetBrandDto responseDto = new()
GetBrandDto responseDto = new() //renvoie l'id et le nom
{
Id = req.Id,
Name = brand.Name
Id = req.Id, //Affiche l'id
Name = brand.Name //Affiche le nom
};
await Send.OkAsync(responseDto, ct);
await Send.OkAsync(responseDto, ct); //Envoie de la réponse réussite 200 au client
}
}

View File

@@ -8,27 +8,27 @@ public class UpdateBrandEndpoint(PyroFetesDbContext pyrofetesdbcontext) : Endpoi
{
public override void Configure()
{
Put("/api/brands/{Id}");
AllowAnonymous();
Put("/api/brands/{Id}"); //Met à jour la marque en fonction de l'id
AllowAnonymous(); //Autorise l'accès sans authentification
}
public override async Task HandleAsync(UpdateBrandDto req, CancellationToken ct)
{
Models.Brand brand = new()
Models.Brand brand = new() //Met à jour la marque
{
Name = req.Name
};
pyrofetesdbcontext.Add(brand);
await pyrofetesdbcontext.SaveChangesAsync(ct);
pyrofetesdbcontext.Add(brand); //ajoute la marque dans la bdd
await pyrofetesdbcontext.SaveChangesAsync(ct); //Sauvegarde les changements
GetBrandDto response = new()
GetBrandDto response = new() //renvoie l'id et le nom
{
Id = req.Id,
Name = req.Name
};
await Send.OkAsync(response, ct);
await Send.OkAsync(response, ct); //Envoie de la réponse réussite 200 au client
}
}