feat: Implement GetMyWeeklyBalances query and handler, enhance ClubMembership service with JWT userId handling
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using CMSMicroservice.Application.Common.Interfaces;
|
||||
using CMSMicroservice.Protobuf.Protos.ClubMembership;
|
||||
using CMSMicroservice.WebApi.Common.Services;
|
||||
using CMSMicroservice.Application.ClubMembershipCQ.Commands.ActivateClubMembership;
|
||||
@@ -10,16 +11,24 @@ using CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubMembershipHist
|
||||
using CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubStatistics;
|
||||
using CMSMicroservice.Application.ClubFeatureCQ.Queries.GetUserClubFeatures;
|
||||
using CMSMicroservice.Application.ClubFeatureCQ.Commands.ToggleUserClubFeature;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Services;
|
||||
|
||||
public class ClubMembershipService : ClubMembershipContract.ClubMembershipContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS;
|
||||
private readonly ICurrentUserService _currentUserService;
|
||||
private readonly ILogger<ClubMembershipService> _logger;
|
||||
|
||||
public ClubMembershipService(IDispatchRequestToCQRS dispatchRequestToCQRS)
|
||||
public ClubMembershipService(
|
||||
IDispatchRequestToCQRS dispatchRequestToCQRS,
|
||||
ICurrentUserService currentUserService,
|
||||
ILogger<ClubMembershipService> logger)
|
||||
{
|
||||
_dispatchRequestToCQRS = dispatchRequestToCQRS;
|
||||
_currentUserService = currentUserService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public override async Task<Empty> ActivateClubMembership(ActivateClubMembershipRequest request, ServerCallContext context)
|
||||
@@ -39,6 +48,25 @@ public class ClubMembershipService : ClubMembershipContract.ClubMembershipContra
|
||||
|
||||
public override async Task<GetClubMembershipResponse> GetClubMembership(GetClubMembershipRequest request, ServerCallContext context)
|
||||
{
|
||||
// اگر UserId در request نیست یا صفر است، از JWT بخوان
|
||||
if (request.UserId <= 0)
|
||||
{
|
||||
if (long.TryParse(_currentUserService.UserId, out var tokenUserId) && tokenUserId > 0)
|
||||
{
|
||||
_logger.LogInformation("GetClubMembership: Reading UserId from JWT token: {UserId}", tokenUserId);
|
||||
request = new GetClubMembershipRequest { UserId = tokenUserId };
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogWarning("GetClubMembership: No valid UserId in request or JWT token");
|
||||
throw new RpcException(new Status(StatusCode.Unauthenticated, "کاربر احراز هویت نشده است"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.LogInformation("GetClubMembership: Using UserId from request: {UserId}", request.UserId);
|
||||
}
|
||||
|
||||
return await _dispatchRequestToCQRS.Handle<GetClubMembershipRequest, GetClubMembershipQuery, GetClubMembershipResponse>(request, context);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user