#152 refacto route titre:

- suppression des routes dans controller route
- gestion du routage dans RouteConfig
This commit is contained in:
b.nodon
2026-03-31 15:16:54 +02:00
parent 7b330fcaec
commit 92d340caa2
2 changed files with 36 additions and 10 deletions

View File

@@ -15,7 +15,6 @@ namespace Webzine.WebApplication.Controllers
/// affichage des details, filtrage par style,
/// ajout de likes, commentaires et recherche.
/// </summary>
[Route("titre")]
public class TitreController : Controller
{
private readonly ILogger<TitreController> logger;
@@ -40,7 +39,6 @@ namespace Webzine.WebApplication.Controllers
/// </summary>
/// <param name="id">Identifiant du titre.</param>
/// <returns>Vue des details ou 404 si introuvable.</returns>
[HttpGet("{id}")]
public IActionResult Details(int id)
{
this.logger.LogInformation("Demande d'affichage du detail pour le titre ID {Id}.", id);
@@ -82,7 +80,6 @@ namespace Webzine.WebApplication.Controllers
/// </summary>
/// <param name="style">Nom du style musical.</param>
/// <returns>Vue contenant la liste filtree.</returns>
[HttpGet("style/{style}")]
public IActionResult Style(string style)
{
this.logger.LogInformation("Recherche des titres pour le style : {Style}.", style);
@@ -103,7 +100,7 @@ namespace Webzine.WebApplication.Controllers
/// </summary>
/// <param name="model">Modele contenant l'identifiant du titre.</param>
/// <returns>Redirection vers la page detail.</returns>
[HttpPost("like")]
[HttpPost]
public IActionResult Like(TitreLike model)
{
this.logger.LogInformation("Ajout d'un like pour le titre ID {Id}.", model.IdTitre);
@@ -126,7 +123,7 @@ namespace Webzine.WebApplication.Controllers
/// </summary>
/// <param name="model">Donnees du commentaire.</param>
/// <returns>Redirection vers la page detail.</returns>
[HttpPost("comment")]
[HttpPost]
public IActionResult Comment(TitreComment model)
{
if (!this.ModelState.IsValid)

View File

@@ -7,26 +7,55 @@ public static class RouteConfiguration
/// </summary>
public static void MapCustomRoutes(this IEndpointRouteBuilder endpoints)
{
// --- ARTISTES ---
// --- DETAILS D'UN TITRE ---
// exemple : /titre/5
endpoints.MapControllerRoute(
name: "TitreDetails",
pattern: "titre/{id}",
defaults: new { controller = "Titre", action = "Details" });
// --- TITRES PAR STYLE ---
// exemple : /titre/style/Rock
endpoints.MapControllerRoute(
name: "TitresParStyle",
pattern: "titres/style/{style}",
defaults: new { controller = "Titre", action = "Style" });
// --- ACTIONS POST (LIKE / COMMENT) ---
endpoints.MapControllerRoute(
name: "TitreLike",
pattern: "titre/like",
defaults: new { controller = "Titre", action = "Like" });
endpoints.MapControllerRoute(
name: "TitreComment",
pattern: "titre/comment",
defaults: new { controller = "Titre", action = "Comment" });
// ----------- ADMIN -----------
// ARTISTES
endpoints.MapControllerRoute(
name: "AdminArtistesIndex",
pattern: "administration/artistes",
defaults: new { area = "Administration", controller = "Artiste", action = "Index" });
// --- COMMENTAIRES ---
// COMMENTAIRES
endpoints.MapControllerRoute(
name: "AdminCommentairesIndex",
pattern: "administration/commentaires",
defaults: new { area = "Administration", controller = "Commentaire", action = "Index" });
// --- STYLES ---
// STYLES
endpoints.MapControllerRoute(
name: "AdminStylesIndex",
pattern: "administration/styles",
defaults: new { area = "Administration", controller = "Style", action = "Index" });
// --- TITRES ---
// TITRES
endpoints.MapControllerRoute(
name: "AdminTitresIndex",
pattern: "administration/titres",