Files
Musify/Application/Tracks/Queries/GetTrackById/GetTrackByIdQueryHandler.cs
T
2026-03-21 04:00:12 +01:00

20 lines
715 B
C#

using Ardalis.Result;
using DispatchR.Abstractions.Send;
using Musify.Application.Contracts.Infrastructure;
using Musify.Application.Tracks.Contracts;
namespace Musify.Application.Tracks.Queries.GetTrackById
{
public class GetTrackByIdQueryHandler(IDatabase database)
: IRequestHandler<GetTrackByIdQuery, Task<Result<TrackResponse> >>
{
public async Task<Result<TrackResponse>> Handle(GetTrackByIdQuery request, CancellationToken cancellationToken)
{
var track = await database.Tracks.FindAsync(request.TrackId);
return track is null
? Result.NotFound()
: Result.Success(TrackResponse.FromEntity(track));
}
}
}