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 >> { public async Task> Handle(GetTrackByIdQuery request, CancellationToken cancellationToken) { var track = await database.Tracks.FindAsync(request.TrackId); return track is null ? Result.NotFound() : Result.Success(TrackResponse.FromEntity(track)); } } }