31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
using DigitalData.Core.Abstractions.Client;
|
|
using DigitalData.Core.Client;
|
|
using EnvelopeGenerator.Application.Configurations.GtxMessaging;
|
|
using EnvelopeGenerator.Application.Contracts;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace EnvelopeGenerator.Application.Services
|
|
{
|
|
public class GtxMessagingService : IMessagingService
|
|
{
|
|
private readonly IHttpClientService<SmsParams> _smsClient;
|
|
|
|
private readonly SmsParams _smsParams;
|
|
|
|
public GtxMessagingService(IHttpClientService<SmsParams> smsClient, IOptions<SmsParams> smsParamsOptions)
|
|
{
|
|
_smsClient = smsClient;
|
|
_smsParams = smsParamsOptions.Value;
|
|
}
|
|
|
|
public Task<dynamic?> SendSmsAsync(string recipient, string message) => SendSmsAsync<dynamic>(recipient: recipient, message: message);
|
|
|
|
public async Task<TResponse?> SendSmsAsync<TResponse>(string recipient, string message)
|
|
{
|
|
return await _smsClient.FetchAsync(queryParams: new Dictionary<string, object?>() {
|
|
{ _smsParams.RecipientQueryParamName, recipient },
|
|
{ _smsParams.MessageQueryParamName, message }
|
|
}).ThenAsync(res => res.Json<TResponse>());
|
|
}
|
|
}
|
|
} |