feat(release): front int PK with app-minted GUID EntryKey on the public addressing surface (P11 W5, 11.H)

This commit is contained in:
daniel-c-harvey
2026-06-16 17:11:55 -04:00
parent fe28573b68
commit f07d29cdcf
37 changed files with 627 additions and 160 deletions
@@ -69,9 +69,9 @@ public class ReleaseClient
: ApiResult<PagedResult<ReleaseDto>>.CreateFailResult("Failed to deserialize response");
}
public async Task<ApiResult<ReleaseDto>> GetById(long id)
public async Task<ApiResult<ReleaseDto>> GetByEntryKey(string entryKey)
{
var response = await _http.GetAsync($"api/release/{id}");
var response = await _http.GetAsync($"api/release/{Uri.EscapeDataString(entryKey)}");
if (!response.IsSuccessStatusCode)
return ApiResult<ReleaseDto>.CreateFailResult($"HTTP {(int)response.StatusCode}");
@@ -85,13 +85,13 @@ public class ReleaseClient
}
/// <summary>
/// Fetches the high-res waveform datum for a Mix release. A 404 means no datum is stored
/// (not yet generated, or not a Mix) — a valid state, so it returns a pass result with a
/// null value. Any other non-success status is a genuine failure.
/// Fetches the high-res waveform datum for a Mix release, addressed by its public EntryKey. A 404
/// means no datum is stored (not yet generated, or not a Mix) — a valid state, so it returns a pass
/// result with a null value. Any other non-success status is a genuine failure.
/// </summary>
public async Task<ApiResult<WaveformProfileDto?>> GetMixWaveform(long id)
public async Task<ApiResult<WaveformProfileDto?>> GetMixWaveform(string entryKey)
{
var response = await _http.GetAsync($"api/release/{id}/mix/waveform");
var response = await _http.GetAsync($"api/release/{Uri.EscapeDataString(entryKey)}/mix/waveform");
if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
return ApiResult<WaveformProfileDto?>.CreatePassResult(null);