Fix query and API bugs: 403 for non-owners, page bounds, lifecycle filters, cover fallback, race-safe inserts, async album delete

This commit is contained in:
2026-09-24 05:14:05 +02:00
parent ab388e6ad6
commit 0e3576922f
90 changed files with 2083 additions and 322 deletions
@@ -0,0 +1,17 @@
using FluentValidation;
using Musify.Api.Models;
using Musify.Application.Shared;
namespace Musify.Api.Validators;
public sealed class PageQueryValidator : AbstractValidator<PageQuery>
{
public PageQueryValidator()
{
RuleFor(x => x.PageNumber)
.GreaterThanOrEqualTo(1);
RuleFor(x => x.PageSize)
.InclusiveBetween(1, PageRequest.MaxPageSize);
}
}
@@ -13,5 +13,8 @@ public sealed class CreatePlayListRequestValidator : AbstractValidator<CreatePla
RuleFor(x => x.Description)
.MaximumLength(256);
RuleFor(x => x.Visibility)
.IsInEnum();
}
}
@@ -15,5 +15,9 @@ public sealed class UpdatePlayListRequestValidator : AbstractValidator<UpdatePla
RuleFor(x => x.NewDescription)
.MaximumLength(256)
.When(x => x.NewDescription != null);
RuleFor(x => x.NewVisibility)
.IsInEnum()
.When(x => x.NewVisibility != null);
}
}