Fix W3-T4 review: log+sanitize catch messages, add validation attrs to CmsTrackUpdateRequest, document T3 delete dependency
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
@page "/cms/tracks/{Id:int}"
|
@page "/cms/tracks/{Id:int}"
|
||||||
|
@* InteractiveServer: page injects ITrackService in-process; ITokenService reads localStorage via JS interop over the circuit. *@
|
||||||
@rendermode InteractiveServer
|
@rendermode InteractiveServer
|
||||||
@using AuthBlocksWeb.HierarchicalAuthorize
|
@using AuthBlocksWeb.HierarchicalAuthorize
|
||||||
@using AuthBlocksWeb.Services
|
@using AuthBlocksWeb.Services
|
||||||
@@ -12,6 +13,7 @@
|
|||||||
@inject ISnackbar Snackbar
|
@inject ISnackbar Snackbar
|
||||||
@inject IDialogService DialogService
|
@inject IDialogService DialogService
|
||||||
@inject NavigationManager Nav
|
@inject NavigationManager Nav
|
||||||
|
@inject ILogger<TrackEdit> Logger
|
||||||
|
|
||||||
<PageTitle>Edit Track — DeepDrft CMS</PageTitle>
|
<PageTitle>Edit Track — DeepDrft CMS</PageTitle>
|
||||||
|
|
||||||
@@ -154,7 +156,8 @@
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Snackbar.Add($"Save failed: {ex.Message}", Severity.Error);
|
Logger.LogError(ex, "Save failed for track {TrackId}", Id);
|
||||||
|
Snackbar.Add("Save failed — please try again.", Severity.Error);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@@ -162,6 +165,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DELETE api/cms/track/{Id} is handled by CmsDeleteController (T3 branch).
|
||||||
private async Task ConfirmDelete()
|
private async Task ConfirmDelete()
|
||||||
{
|
{
|
||||||
if (_track is null) return;
|
if (_track is null) return;
|
||||||
@@ -194,7 +198,8 @@
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Snackbar.Add($"Delete failed: {ex.Message}", Severity.Error);
|
Logger.LogError(ex, "Delete failed for track {TrackId}", Id);
|
||||||
|
Snackbar.Add("Delete failed — please try again.", Severity.Error);
|
||||||
_busy = false;
|
_busy = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
@using Microsoft.AspNetCore.Components.Web
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
@using Microsoft.AspNetCore.Components.Web.Virtualization
|
||||||
@using static Microsoft.AspNetCore.Components.Web.RenderMode
|
@using static Microsoft.AspNetCore.Components.Web.RenderMode
|
||||||
|
@using Microsoft.Extensions.Logging
|
||||||
@using Microsoft.JSInterop
|
@using Microsoft.JSInterop
|
||||||
@using DeepDrftCms
|
@using DeepDrftCms
|
||||||
@using DeepDrftModels.Entities
|
@using DeepDrftModels.Entities
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using DeepDrftModels.Entities;
|
using DeepDrftModels.Entities;
|
||||||
using DeepDrftWeb.Services;
|
using DeepDrftWeb.Services;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
@@ -51,8 +52,8 @@ public class CmsEditController : ControllerBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
public record CmsTrackUpdateRequest(
|
public record CmsTrackUpdateRequest(
|
||||||
string TrackName,
|
[Required, MaxLength(200)] string TrackName,
|
||||||
string Artist,
|
[Required, MaxLength(200)] string Artist,
|
||||||
string? Album,
|
[MaxLength(200)] string? Album,
|
||||||
string? Genre,
|
[MaxLength(100)] string? Genre,
|
||||||
DateOnly? ReleaseDate);
|
DateOnly? ReleaseDate);
|
||||||
|
|||||||
Reference in New Issue
Block a user