Skip to content

Commit 24117d3

Browse files
committed
Add analytics events
1 parent 42fb86b commit 24117d3

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/Api/Endpoints/Auth/RegisterEndpoint.cs

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Api.Models.Requests.Auth;
22
using Api.Models.Responses;
3+
using Core.Abstractions;
34
using FastEndpoints;
45
using Infrastructure.Auth0.Abstractions;
56
using Infrastructure.Auth0.Models;
@@ -8,10 +9,12 @@ namespace Api.Endpoints.Auth;
89

910
public class RegisterEndpoint(
1011
IAuthService authService,
12+
IUserPreferencesService userPreferencesService,
1113
ILogger<RegisterEndpoint> logger)
1214
: Endpoint<RegisterRequest, ApiResponse<UserInfoResponse>>
1315
{
1416
private readonly IAuthService _authService = authService;
17+
private readonly IUserPreferencesService _userPreferencesService = userPreferencesService;
1518
private readonly ILogger<RegisterEndpoint> _logger = logger;
1619

1720
public override void Configure()
@@ -35,6 +38,8 @@ public override async Task HandleAsync(
3538
}
3639
else
3740
{
41+
await _userPreferencesService.CreateUserPreferences(registrationResponse.UserId, ct);
42+
3843
var tokenInfo = new UserTokenResponse(
3944
registrationResponse.TokenInfo.Token,
4045
registrationResponse.TokenInfo.ExpiresIn);

src/Core/Services/UserPreferencesService.cs

+12-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Core.Mappers;
44
using Core.Models.UserPreferences;
55
using ErrorOr;
6+
using Infrastructure.Persistence.MassTransit.Analytics;
67
using Infrastructure.Persistence.Mongo.Abstractions;
78
using Infrastructure.Persistence.Mongo.Entities.Preferences;
89
using Infrastructure.Persistence.Mongo.Specifications;
@@ -11,9 +12,11 @@
1112
namespace Core.Services;
1213

1314
public class UserPreferencesService(
15+
IUserAnalyticsClient userAnalyticsClient,
1416
IMongoRepository<UserPreferences> userPreferencesRepository,
1517
ILogger<UserPreferencesService> logger) : IUserPreferencesService
1618
{
19+
private readonly IUserAnalyticsClient _userAnalyticsClient = userAnalyticsClient;
1720
private readonly IMongoRepository<UserPreferences> _userPreferencesRepository = userPreferencesRepository;
1821
private readonly ILogger<UserPreferencesService> _logger = logger;
1922

@@ -30,6 +33,10 @@ public async Task<ErrorOr<UserPreferencesDto>> CreateUserPreferences(string user
3033
var entity = UserPreferencesMapper.ToEntity(defaultPreferences);
3134
await _userPreferencesRepository.InsertOne(entity);
3235

36+
// here user mail should be sent
37+
await _userAnalyticsClient.SendUserAction(
38+
userId, "UserPreferencesCreated", "recipient", "User's Preferences", ct);
39+
3340
return UserPreferencesMapper.ToDto(entity);
3441
}
3542
catch (Exception ex)
@@ -54,7 +61,11 @@ public async Task<ErrorOr<UserPreferencesDto>> UpdateUserPreferences(
5461

5562
var entity = UserPreferencesMapper.UpdateEntity(currentPreferences, userPreferences);
5663
await _userPreferencesRepository.Replace(entity);
57-
64+
65+
// here user mail should be sent
66+
await _userAnalyticsClient.SendUserAction(
67+
userPreferences.UserId, "UserPreferencesCreated", "recipient", "User's Preferences", ct);
68+
5869
return UserPreferencesMapper.ToDto(entity);
5970
}
6071
catch (Exception ex)

0 commit comments

Comments
 (0)