diff --git a/SPMS.Infrastructure/Workers/PushWorker.cs b/SPMS.Infrastructure/Workers/PushWorker.cs index 744fefe..1083f67 100644 --- a/SPMS.Infrastructure/Workers/PushWorker.cs +++ b/SPMS.Infrastructure/Workers/PushWorker.cs @@ -29,6 +29,7 @@ public class PushWorker : BackgroundService private readonly IWebhookService _webhookService; private readonly IFcmSender _fcmSender; private readonly IApnsSender _apnsSender; + private readonly ICredentialEncryptionService _credentialEncryption; private readonly ILogger _logger; public PushWorker( @@ -41,6 +42,7 @@ public class PushWorker : BackgroundService IWebhookService webhookService, IFcmSender fcmSender, IApnsSender apnsSender, + ICredentialEncryptionService credentialEncryption, ILogger logger) { _rabbitConnection = rabbitConnection; @@ -52,6 +54,7 @@ public class PushWorker : BackgroundService _webhookService = webhookService; _fcmSender = fcmSender; _apnsSender = apnsSender; + _credentialEncryption = credentialEncryption; _logger = logger; } @@ -185,8 +188,9 @@ public class PushWorker : BackgroundService if (androidDevices.Count > 0 && !string.IsNullOrEmpty(service.FcmCredentials)) { + var fcmCredentials = _credentialEncryption.Decrypt(service.FcmCredentials); var fcmResults = await SendFcmBatchAsync( - service.FcmCredentials, androidDevices, pushMessage, customData, ct); + fcmCredentials, androidDevices, pushMessage, customData, ct); allResults.AddRange(fcmResults); } @@ -196,8 +200,9 @@ public class PushWorker : BackgroundService !string.IsNullOrEmpty(service.ApnsTeamId) && !string.IsNullOrEmpty(service.ApnsBundleId)) { + var apnsPrivateKey = _credentialEncryption.Decrypt(service.ApnsPrivateKey); var apnsResults = await SendApnsBatchAsync( - service, iosDevices, pushMessage, customData, ct); + service, apnsPrivateKey, iosDevices, pushMessage, customData, ct); allResults.AddRange(apnsResults); } @@ -448,14 +453,14 @@ public class PushWorker : BackgroundService } private async Task> SendApnsBatchAsync( - Service service, List devices, PushMessageDto message, + Service service, string apnsPrivateKey, List devices, PushMessageDto message, Dictionary? customData, CancellationToken ct) { var results = new List<(Device, PushResultDto)>(); var tokens = devices.Select(d => d.DeviceToken).ToList(); var batchResults = await _apnsSender.SendBatchAsync( - service.ApnsPrivateKey!, service.ApnsKeyId!, service.ApnsTeamId!, service.ApnsBundleId!, + apnsPrivateKey, service.ApnsKeyId!, service.ApnsTeamId!, service.ApnsBundleId!, tokens, message.Title, message.Body, message.ImageUrl, customData, ct);