feat: replace /archive with release-cardinal searchable browser (Phase 9 §8.H)
Retire the three-card overview for a search + medium + genre browser over all releases. Adds q/genre filter params to the api/release paged read path, mirroring the existing api/track/page TrackFilter pattern.
This commit is contained in:
@@ -31,12 +31,15 @@ public class ReleaseController : ControllerBase
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
// GET api/release?medium=session&page=1&pageSize=20&sortColumn=Title&sortDescending=false (unauth)
|
||||
// Paged release list, optionally filtered to one medium. The matching medium's metadata satellite is
|
||||
// populated; the others are null. Public browse data, same auth posture as GET api/track/page.
|
||||
// GET api/release?medium=session&q=text&genre=House&page=1&pageSize=20&sortColumn=Title&sortDescending=false (unauth)
|
||||
// Paged release list, optionally narrowed by medium, free-text search (q), and genre. The matching
|
||||
// medium's metadata satellite is populated; the others are null. Backs the public /archive browser.
|
||||
// Public browse data, same auth posture as GET api/track/page.
|
||||
[HttpGet]
|
||||
public async Task<ActionResult> GetReleases(
|
||||
[FromQuery] string? medium = null,
|
||||
[FromQuery] string? q = null,
|
||||
[FromQuery] string? genre = null,
|
||||
[FromQuery] int page = 1,
|
||||
[FromQuery] int pageSize = 20,
|
||||
[FromQuery] string? sortColumn = null,
|
||||
@@ -51,7 +54,8 @@ public class ReleaseController : ControllerBase
|
||||
parsedMedium = m;
|
||||
}
|
||||
|
||||
var result = await _releaseService.GetPagedAsync(page, pageSize, sortColumn, sortDescending, parsedMedium, ct);
|
||||
var filter = new ReleaseFilter { SearchText = q, Genre = genre };
|
||||
var result = await _releaseService.GetPagedAsync(page, pageSize, sortColumn, sortDescending, parsedMedium, filter, ct);
|
||||
if (!result.Success || result.Value is null)
|
||||
{
|
||||
var error = result.Messages.FirstOrDefault()?.Message ?? "Unknown error";
|
||||
|
||||
Reference in New Issue
Block a user