2025-05-06 06:45:49 +00:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
|
|
2025-11-11 19:49:52 +00:00
|
|
|
|
namespace Erp.Sender.WhatsApp;
|
2025-05-06 06:45:49 +00:00
|
|
|
|
|
2025-11-11 19:49:52 +00:00
|
|
|
|
public interface IErpWhatsAppSender : ITransientDependency
|
2025-05-06 06:45:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
Task<WhatsAppSendResult> SendAsync(string To, string Message, string LanguageCode = "tr");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-11 19:49:52 +00:00
|
|
|
|
public class ErpWhatsAppSender : IErpWhatsAppSender
|
2025-05-06 06:45:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
private readonly IWhatsAppHttpClient httpClient;
|
2025-11-11 19:49:52 +00:00
|
|
|
|
private readonly ILogger<ErpWhatsAppSender> logger;
|
2025-05-06 06:45:49 +00:00
|
|
|
|
|
2025-11-11 19:49:52 +00:00
|
|
|
|
public ErpWhatsAppSender(
|
2025-05-06 06:45:49 +00:00
|
|
|
|
IWhatsAppHttpClient httpClient,
|
2025-11-11 19:49:52 +00:00
|
|
|
|
ILogger<ErpWhatsAppSender> logger)
|
2025-05-06 06:45:49 +00:00
|
|
|
|
{
|
|
|
|
|
|
this.httpClient = httpClient;
|
|
|
|
|
|
this.logger = logger;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<WhatsAppSendResult> SendAsync(string To, string Message, string LanguageCode = "tr")
|
|
|
|
|
|
{
|
|
|
|
|
|
logger.LogInformation("WhatsApp gönderiliyor. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message);
|
|
|
|
|
|
var result = await httpClient.SendMessageAsync(To, Message, LanguageCode);
|
|
|
|
|
|
var success = !result.messages.IsNullOrEmpty() && result.messages.FirstOrDefault()?.message_status == "accepted";
|
|
|
|
|
|
if (success)
|
|
|
|
|
|
{
|
|
|
|
|
|
logger.LogInformation("WhatsApp gönderildi. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
logger.LogWarning("WhatsApp gönderilemedi. {To}, {LanguageCode}, {Message}", To, LanguageCode, Message);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return new WhatsAppSendResult
|
|
|
|
|
|
{
|
|
|
|
|
|
Success = success,
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-11-11 19:49:52 +00:00
|
|
|
|
|