Add webhook

This commit is contained in:
2025-06-09 01:04:02 +07:00
parent 8836c45c9d
commit 1f2780d52a
15 changed files with 195 additions and 19 deletions

View File

@@ -2,16 +2,21 @@
using Managing.Common;
using Managing.Domain.Statistics;
using Managing.Domain.Trades;
using Managing.Domain.Users;
namespace Managing.Application.Shared;
public class MessengerService : IMessengerService
{
private readonly IDiscordService _discordService;
private readonly IWebhookService _webhookService;
private readonly IUserService _userService;
public MessengerService(IDiscordService discordService)
public MessengerService(IDiscordService discordService, IWebhookService webhookService, IUserService userService)
{
_discordService = discordService;
_webhookService = webhookService;
_userService = userService;
}
public async Task SendClosedPosition(string address, Trade oldTrade)
@@ -50,9 +55,24 @@ public class MessengerService : IMessengerService
await _discordService.SendSignal(message, exchange, ticker, direction, timeframe);
}
public async Task SendTradeMessage(string message, bool isBadBehavior = false)
public async Task SendTradeMessage(string message, bool isBadBehavior = false, User user = null)
{
await _discordService.SendTradeMessage(message, isBadBehavior);
// Always send to Discord
try
{
await _discordService.SendTradeMessage(message, isBadBehavior);
}
catch (Exception e)
{
Console.WriteLine(e);
}
// If user is provided, also send to webhook
if (user != null)
{
user = _userService.GetUser(user.Name);
await _webhookService.SendTradeNotification(user, message, isBadBehavior);
}
}
public async Task SendBestTraders(List<Trader> traders)