mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-10-14 17:54:42 +00:00
27 lines
958 B
C#
27 lines
958 B
C#
using Domain.Entities;
|
|
using Domain.Exceptions;
|
|
using Features.ImageUploads.Services;
|
|
using Features.Users.Dtos;
|
|
using Features.Users.Repository;
|
|
using MediatR;
|
|
|
|
namespace Features.Users.Queries.GetPublicUserProfileById;
|
|
|
|
public class GetPublicUserProfileByIdHandler(
|
|
IUserListRepository repository,
|
|
IFileStorageProvider fileStorageProvider
|
|
) : IRequestHandler<GetPublicUserProfileByIdQuery, PublicUserProfileDto>
|
|
{
|
|
/// <exception cref="NotFoundException">Thrown when no user account exists with the given ID.</exception>
|
|
public async Task<PublicUserProfileDto> Handle(
|
|
GetPublicUserProfileByIdQuery request,
|
|
CancellationToken cancellationToken
|
|
)
|
|
{
|
|
UserAccount? user = await repository.GetByIdAsync(request.UserAccountId);
|
|
if (user is null)
|
|
throw new NotFoundException($"User with ID {request.UserAccountId} not found");
|
|
return user.ToPublicProfileDto(fileStorageProvider);
|
|
}
|
|
}
|