feat(settings): add dynamic N8N webhook URL configuration for News, Sentiment and Analyzer services

This commit is contained in:
2026-08-17 16:10:31 +02:00
parent 75a2510b39
commit 3972507cb0
6 changed files with 68 additions and 24 deletions
@@ -48,16 +48,30 @@ public class FinBertAnalyzerService : IFinBertAnalyzerService
{
ArgumentNullException.ThrowIfNull(article);
string targetUrl;
double minConfidence;
string targetUrl = string.Empty;
double minConfidence = 0.60;
using (var scope = _scopeFactory.CreateScope())
{
var settingsDb = scope.ServiceProvider.GetRequiredService<ISettingsDbService>();
var settings = await settingsDb.GetSettingsAsync();
targetUrl = string.Equals(article.Language, "en", StringComparison.OrdinalIgnoreCase)
? settings.EnglishWebhookUrl
: settings.GermanWebhookUrl;
minConfidence = settings.MinConfidenceScore;
var settingsService = scope.ServiceProvider.GetService<ISettingsService>();
bool isEnglish = string.Equals(article.Language, "en", StringComparison.OrdinalIgnoreCase);
if (settingsService != null)
{
targetUrl = isEnglish
? await settingsService.GetSettingAsync(SettingKeys.EnglishWebhookUrl)
: await settingsService.GetSettingAsync(SettingKeys.GermanWebhookUrl);
minConfidence = await settingsService.GetSettingAsync(SettingKeys.MinimumConfidenceThreshold);
}
if (string.IsNullOrWhiteSpace(targetUrl))
{
var settingsDb = scope.ServiceProvider.GetRequiredService<ISettingsDbService>();
var settings = await settingsDb.GetSettingsAsync();
targetUrl = isEnglish
? settings.EnglishWebhookUrl
: settings.GermanWebhookUrl;
minConfidence = settings.MinConfidenceScore;
}
}
await _finlyticLogger.LogInfoAsync(SettingKeys.SentimentChannel, "[FinBertAnalyzerService] Analyzing article (ID: {Id}, Lang: {Lang}) via webhook: {Url} (MinConf: {Conf})", article.Id, article.Language ?? "de", targetUrl, minConfidence);