diff --git a/src/FiscalOS.Infra/Transactions/Plaid/PlaidTransactionProcessor.cs b/src/FiscalOS.Infra/Transactions/Plaid/PlaidTransactionProcessor.cs index 0d09e03..3a578d3 100644 --- a/src/FiscalOS.Infra/Transactions/Plaid/PlaidTransactionProcessor.cs +++ b/src/FiscalOS.Infra/Transactions/Plaid/PlaidTransactionProcessor.cs @@ -16,25 +16,29 @@ internal sealed class PlaidTransactionProcessor : IPlaidTransactionProcessor private readonly IPlaidAddedTransactionHandler _addedHandler; private readonly IPlaidModifiedTransactionHandler _modifiedHandler; private readonly IPlaidRemovedTransactionHandler _removedHandler; + private readonly ILogger _logger; private PlaidTransactionProcessor( IPlaidAddedTransactionHandler addedHandler, IPlaidModifiedTransactionHandler modifiedHandler, - IPlaidRemovedTransactionHandler removedHandler + IPlaidRemovedTransactionHandler removedHandler, + ILogger logger ) { _addedHandler = addedHandler; _modifiedHandler = modifiedHandler; _removedHandler = removedHandler; + _logger = logger; } internal static PlaidTransactionProcessor From( IPlaidAddedTransactionHandler addedHandler, IPlaidModifiedTransactionHandler modifiedHandler, - IPlaidRemovedTransactionHandler removedHandler + IPlaidRemovedTransactionHandler removedHandler, + ILogger logger ) { - return new(addedHandler, modifiedHandler, removedHandler); + return new(addedHandler, modifiedHandler, removedHandler, logger); } internal static PlaidTransactionProcessor From(IServiceProvider provider) @@ -42,7 +46,8 @@ internal sealed class PlaidTransactionProcessor : IPlaidTransactionProcessor return new( provider.GetRequiredService(), provider.GetRequiredService(), - provider.GetRequiredService() + provider.GetRequiredService(), + provider.GetRequiredService>() ); } @@ -69,6 +74,17 @@ internal sealed class PlaidTransactionProcessor : IPlaidTransactionProcessor cancellationToken ).ConfigureAwait(false); + _logger.LogInformation( + "Processed Plaid transactions sync for account {AccountId}: {NumAdded} of {TotalAdded} added, {NumModified} of {TotalModified} modified, {NumRemoved} of {TotalRemoved} removed", + account.Id, + numAdded, + syncResponse.Added.Count, + numModified, + syncResponse.Modified.Count, + numRemoved, + syncResponse.Removed.Count + ); + return numAdded == syncResponse.Added.Count && numModified == syncResponse.Modified.Count && numRemoved == syncResponse.Removed.Count; diff --git a/tests/FiscalOS.Infra.Tests/Unit/PlaidTransactionProcessorTests.cs b/tests/FiscalOS.Infra.Tests/Unit/PlaidTransactionProcessorTests.cs index 1dd2deb..bf79a9e 100644 --- a/tests/FiscalOS.Infra.Tests/Unit/PlaidTransactionProcessorTests.cs +++ b/tests/FiscalOS.Infra.Tests/Unit/PlaidTransactionProcessorTests.cs @@ -5,6 +5,7 @@ public class PlaidTransactionProcessorTests private readonly Mock _mockAddedHandler = new(); private readonly Mock _mockModifiedHandler = new(); private readonly Mock _mockRemovedHandler = new(); + private readonly Mock> _mockLogger = new(); private readonly PlaidTransactionProcessor _sut; public PlaidTransactionProcessorTests() @@ -12,7 +13,8 @@ public class PlaidTransactionProcessorTests _sut = PlaidTransactionProcessor.From( _mockAddedHandler.Object, _mockModifiedHandler.Object, - _mockRemovedHandler.Object + _mockRemovedHandler.Object, + _mockLogger.Object ); }