fix(infra): add logging to PlaidTransactionProcessor for transaction sync processing

This commit is contained in:
Stevan Freeborn
2026-03-12 16:42:44 -05:00
parent 6a21e92aa6
commit 66f4cd2959
2 changed files with 23 additions and 5 deletions
@@ -16,25 +16,29 @@ internal sealed class PlaidTransactionProcessor : IPlaidTransactionProcessor
private readonly IPlaidAddedTransactionHandler _addedHandler;
private readonly IPlaidModifiedTransactionHandler _modifiedHandler;
private readonly IPlaidRemovedTransactionHandler _removedHandler;
private readonly ILogger<PlaidTransactionProcessor> _logger;
private PlaidTransactionProcessor(
IPlaidAddedTransactionHandler addedHandler,
IPlaidModifiedTransactionHandler modifiedHandler,
IPlaidRemovedTransactionHandler removedHandler
IPlaidRemovedTransactionHandler removedHandler,
ILogger<PlaidTransactionProcessor> logger
)
{
_addedHandler = addedHandler;
_modifiedHandler = modifiedHandler;
_removedHandler = removedHandler;
_logger = logger;
}
internal static PlaidTransactionProcessor From(
IPlaidAddedTransactionHandler addedHandler,
IPlaidModifiedTransactionHandler modifiedHandler,
IPlaidRemovedTransactionHandler removedHandler
IPlaidRemovedTransactionHandler removedHandler,
ILogger<PlaidTransactionProcessor> 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<IPlaidAddedTransactionHandler>(),
provider.GetRequiredService<IPlaidModifiedTransactionHandler>(),
provider.GetRequiredService<IPlaidRemovedTransactionHandler>()
provider.GetRequiredService<IPlaidRemovedTransactionHandler>(),
provider.GetRequiredService<ILogger<PlaidTransactionProcessor>>()
);
}
@@ -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;
@@ -5,6 +5,7 @@ public class PlaidTransactionProcessorTests
private readonly Mock<IPlaidAddedTransactionHandler> _mockAddedHandler = new();
private readonly Mock<IPlaidModifiedTransactionHandler> _mockModifiedHandler = new();
private readonly Mock<IPlaidRemovedTransactionHandler> _mockRemovedHandler = new();
private readonly Mock<ILogger<PlaidTransactionProcessor>> _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
);
}