MyBookmark/Modules.Library.Application/Queries/Anime/GetMediaQuery.cs
2024-11-16 02:52:33 +03:00

37 lines
1.3 KiB
C#

using MediatR;
using Modules.Library.Application.Models;
namespace Modules.Library.Application.Queries.Anime;
public class GetMediaQuery : IRequest<ObjectResult?>
{
public string ObjectId { get; set; } = default!;
}
public class GetMediaQueryHandler(IMediator mediator) : IRequestHandler<GetMediaQuery, ObjectResult?>
{
public async Task<ObjectResult?> Handle(GetMediaQuery request, CancellationToken cancellationToken)
{
//var userInfo = await userContext.GetUserInfo(cancellationToken);
//if (userInfo?.AccountId == null) throw new Exception("User not found");
//var user = await userGateway.Get(userInfo.AccountId.Value) ?? throw new Exception("User was not found");
if (string.IsNullOrWhiteSpace(request.ObjectId))
{
return null;
}
else
{
var result = await mediator.Send(new Media.Api.Queries.GetObjectQuery
{
BusketName = "my-bookmark.library",
ObjectName = request.ObjectId,
}, cancellationToken);
return result == null ? null : new ObjectResult
{
ObjectName = result.ObjectName,
ContentType = result.ContentType,
Data = result.Data,
};
}
}
}