Files
Musify/Application/Users/Handlers/GetUserByKeycloakQueryHandler.cs
T
2026-05-14 01:05:07 +02:00

24 lines
880 B
C#

using Ardalis.Result;
using Mediator;
using Microsoft.EntityFrameworkCore;
using Musify.Application.Abstractions.Infrastructure;
using Musify.Application.Users.Queries;
using Musify.Application.Users.Responses;
namespace Musify.Application.Users.Handlers
{
public class GetUserByKeycloakQueryHandler(IDatabase database)
: IQueryHandler<GetUserByKeycloakQuery, Result<UserApplicationResponse> >
{
public async ValueTask<Result<UserApplicationResponse>> Handle(GetUserByKeycloakQuery request, CancellationToken cancellationToken)
{
var user = await database.Users
.AsNoTracking()
.Select(u => UserApplicationResponse.FromEntity(u))
.SingleOrDefaultAsync(u => u.Id == request.Id, cancellationToken);
return user ?? Result<UserApplicationResponse>.NotFound();
}
}
}