chore(infra): update compose configurations, mqtt health bridge, and export scripts
This commit is contained in:
@@ -9,6 +9,7 @@ using FinlyticBackend.Database;
|
||||
using FinlyticBackend.Hubs;
|
||||
using FinlyticBackend.Services;
|
||||
using FinlyticBackend.Settings;
|
||||
using FinlyticCore.Dtos;
|
||||
using FinlyticCore.Dtos.Bot;
|
||||
using FinlyticCore.Dtos.Logging;
|
||||
using FinlyticCore.Dtos.News;
|
||||
@@ -104,6 +105,11 @@ public class BackendMqttBridge : ManagedMqttClient, IHostedService
|
||||
MqttTopics.RequestFilter(MqttTopics.Channels.BackendGetAggregatedFavorites),
|
||||
HandleGetAggregatedFavoritesRpcAsync);
|
||||
|
||||
// Username lookup RPC Endpoint for FinlyticNotify
|
||||
await SubscribeRpcAsync<UserIdRequest, string?>(
|
||||
MqttTopics.RequestFilter(MqttTopics.Channels.BackendGetUsername),
|
||||
HandleGetUsernameRpcAsync);
|
||||
|
||||
// FinlyticBackend previously never broadcast its OWN structured logs at all (it only relayed other
|
||||
// services' logs received on MqttTopics.LogsWildcard, subscribed above) - it never used
|
||||
// IFinlyticLogger<T>, so FinlyticLogBroadcaster.Broadcast was never invoked for anything happening
|
||||
@@ -286,4 +292,24 @@ public class BackendMqttBridge : ManagedMqttClient, IHostedService
|
||||
"[BackendMqttBridge] Responded to backend_GetAggregatedFavorites with {Count} unique ISINs. [CorrelationId: {CorrelationId}]", isins.Count, correlationId);
|
||||
return isins;
|
||||
}
|
||||
|
||||
private async Task<string?> HandleGetUsernameRpcAsync(UserIdRequest? req, string correlationId)
|
||||
{
|
||||
if (req == null || req.UserId == Guid.Empty) return null;
|
||||
|
||||
using var scope = _scopeFactory.CreateScope();
|
||||
var dbContext = scope.ServiceProvider.GetRequiredService<BackendDbContext>();
|
||||
|
||||
var user = await dbContext.Users
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(u => u.Id == req.UserId);
|
||||
|
||||
if (user == null) return null;
|
||||
|
||||
string username = !string.IsNullOrWhiteSpace(user.FullName)
|
||||
? user.FullName.Trim().ToLowerInvariant().Replace(" ", "_")
|
||||
: user.Email.Split('@')[0].Trim().ToLowerInvariant();
|
||||
|
||||
return username;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user