1
1
using MassTransit ;
2
2
using Trumpee . MassTransit ;
3
3
using Trumpee . MassTransit . Messages . Analytics . Users ;
4
+ using Trumpee . MassTransit . Messages . Analytics . Users . Payloads ;
4
5
5
6
namespace Infrastructure . Persistence . MassTransit . Analytics ;
6
7
7
8
public class UserAnalyticsClient ( ISendEndpointProvider sendEndpointProvider ) : IUserAnalyticsClient
8
9
{
9
10
private readonly ISendEndpointProvider _endpointProvider = sendEndpointProvider ;
10
-
11
+
12
+ private static readonly string SignUpQueue = QueueNames . Analytics . Users ( typeof ( UserSignUpPayload ) ) ;
13
+ private static readonly string SignIpQueue = QueueNames . Analytics . Users ( typeof ( UserSignInPayload ) ) ;
14
+ private static readonly string UserActionQueue = QueueNames . Analytics . Users ( typeof ( UserActionPayload ) ) ;
15
+
11
16
public async Task SendUserSignIn ( string email , CancellationToken ct )
12
17
{
13
18
var analyticsEvent = User . SignIn ( "Trumpee Gateway" , email ) ;
14
- await SendEvent ( analyticsEvent , ct ) ;
19
+ await SendEvent ( analyticsEvent , SignIpQueue , ct ) ;
15
20
}
16
-
21
+
17
22
public async Task SendUserSignUp ( string userId ,
18
23
string email , string name , string roles , CancellationToken ct )
19
24
{
20
25
var analyticsEvent = User . SignUp ( "Trumpee Gateway" , userId , email , name , roles ) ;
21
- await SendEvent ( analyticsEvent , ct ) ;
26
+ await SendEvent ( analyticsEvent , SignUpQueue , ct ) ;
22
27
}
23
-
28
+
24
29
public async Task SendUserAction ( string email ,
25
30
string userAction , string usedRole , string affectedData , CancellationToken ct )
26
31
{
27
32
var analyticsEvent = User . Action ( "Trumpee Gateway" , email , userAction , usedRole , affectedData ) ;
28
- await SendEvent ( analyticsEvent , ct ) ;
33
+ await SendEvent ( analyticsEvent , UserActionQueue , ct ) ;
29
34
}
30
-
31
- private async Task SendEvent < T > ( T analyticsEvent , CancellationToken ct ) where T : class
35
+
36
+ private async Task SendEvent < T > ( T analyticsEvent , string queueName , CancellationToken ct ) where T : class
32
37
{
33
- var endpoint = await _endpointProvider . GetSendEndpoint ( new Uri ( QueueNames . Analytics . Users ) ) ;
38
+ var endpoint = await _endpointProvider . GetSendEndpoint ( new Uri ( queueName ) ) ;
34
39
await endpoint . Send ( analyticsEvent , ct ) ;
35
40
}
36
41
}
0 commit comments