Updated GetCurrentUser.cs to include StripeId

This commit is contained in:
Karl Carriere
2024-12-18 08:44:10 -05:00
parent ffd8f43f3d
commit c447479362
2 changed files with 13 additions and 2 deletions

View File

@@ -1,16 +1,19 @@
using Hutopy.Web.Features.Users.Handlers.Models; using Hutopy.Web.Features.Users.Handlers.Models;
using Hutopy.Web.Features.Memberships.Data;
using Hutopy.Web.Features.Memberships.Infrastructure;
namespace Hutopy.Web.Features.Users.Handlers; namespace Hutopy.Web.Features.Users.Handlers;
[PublicAPI] [PublicAPI]
public class GetCurrentUserQueryHandler( public class GetCurrentUserQueryHandler(
IdentityService identityService) IdentityService identityService,
MembershipDbContext membershipDbContext)
: EndpointWithoutRequest<UserDto> : EndpointWithoutRequest<UserDto>
{ {
public override void Configure() public override void Configure()
{ {
Get("/api/users/profile"); Get("/api/users/profile");
Options(o => o.WithTags("Users")); Options(o => o.WithTags("Memberships"));
} }
public override async Task HandleAsync( public override async Task HandleAsync(
@@ -26,6 +29,12 @@ public class GetCurrentUserQueryHandler(
var roles = await identityService.GetCurrentUserRolesAsync(); var roles = await identityService.GetCurrentUserRolesAsync();
var stripeId = await membershipDbContext
.Creators
.Where(c => c.Id == userModel.Id)
.Select(c => c.StripeAccountId)
.FirstOrDefaultAsync(cancellationToken);
await SendOkAsync( await SendOkAsync(
new UserDto new UserDto
{ {
@@ -40,6 +49,7 @@ public class GetCurrentUserQueryHandler(
BirthDate = userModel.BirthDate, BirthDate = userModel.BirthDate,
Address = userModel.Address, Address = userModel.Address,
UserRoles = roles, UserRoles = roles,
StripeId = stripeId ?? string.Empty
}, },
cancellationToken); cancellationToken);
} }

View File

@@ -13,4 +13,5 @@ public class UserDto
public string? PhoneNumber { get; init; } public string? PhoneNumber { get; init; }
public DateTime? BirthDate { get; init; } public DateTime? BirthDate { get; init; }
public string? Address { get; init; } public string? Address { get; init; }
public string? StripeId { get; init; }
} }