This commit is contained in:
2026-09-24 17:58:48 +02:00
parent e84c16cf92
commit 1a302491d1
37 changed files with 0 additions and 61 deletions
@@ -2,7 +2,6 @@ using Musify.Domain.ValueObjects;
namespace Musify.Api.Models
{
/// <summary>Query-string binding for a genre name (case-insensitive); unknown names are rejected with a 400.</summary>
public readonly record struct GenreParameter(Genre Value)
{
public static bool TryParse(string? value, out GenreParameter result)
@@ -1,9 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using Musify.Application.Shared;
namespace Musify.Api.Models
{
/// <summary>Query-string binding for <see cref="PageRequest"/>, keeping the camelCase parameter names of the API.</summary>
public record PageQuery(
[property: FromQuery(Name = "pageNumber")] int PageNumber = 1,
[property: FromQuery(Name = "pageSize")] int PageSize = 20);
@@ -40,8 +40,6 @@ namespace Musify.Api.OpenApi
options.AddSchemaTransformer((schema, context, _) =>
{
// Every long the API returns is a user id, serialized as a string (JS loses precision above 2^53).
// Request DTOs only carry byte sizes, which may be sent as numbers or strings.
if (context.JsonPropertyInfo is { } property
&& (property.PropertyType == typeof(long) || property.PropertyType == typeof(long?)))
{
@@ -57,7 +55,6 @@ namespace Musify.Api.OpenApi
options.AddOperationTransformer((operation, context, _) =>
{
// Route parameters constrained with :long are user ids, which travel as strings like every other long.
foreach (var parameter in operation.Parameters?.OfType<OpenApiParameter>() ?? [])
{
if (parameter.Schema is OpenApiSchema { Type: JsonSchemaType.Integer, Format: "int64" } schema)