feat(api): expose the album endpoints

Eight routes under /albums covering the listing, the detail, the tracklist and
the owner-only writes, wired to the same validation filter and ErrorOr mapping
the playlists use.
This commit is contained in:
2026-07-20 20:13:40 +02:00
parent 69468c9dbd
commit 22ed923a04
7 changed files with 260 additions and 0 deletions
@@ -0,0 +1,21 @@
using FluentValidation;
using Musify.Api.DataTransferObjects.Albums;
namespace Musify.Api.Validators.Albums;
public sealed class UpdateAlbumRequestValidator : AbstractValidator<UpdateAlbumRequest>
{
public UpdateAlbumRequestValidator()
{
RuleFor(x => x.NewTitle)
.NotEmpty()
.MaximumLength(200);
RuleFor(x => x.NewDescription)
.MaximumLength(256);
RuleFor(x => x.NewReleaseYear)
.InclusiveBetween(AlbumReleaseYear.Earliest, AlbumReleaseYear.Latest)
.When(x => x.NewReleaseYear.HasValue);
}
}