mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-23 23:19:28 +00:00
refactor(api): Split DatabaseService into repository pattern.
Split the monolithic DatabaseService (1,492 lines) into focused repository modules using the repository pattern for better maintainability and separation of concerns. Changes: - Create new repositories/ directory with 5 focused repositories: - TransactionRepository: transaction data operations (264 lines) - AccountRepository: account data operations (128 lines) - BalanceRepository: balance data operations (107 lines) - MigrationRepository: all database migrations (629 lines) - SyncRepository: sync operation tracking (132 lines) - BaseRepository: shared database connection logic (28 lines) - Refactor DatabaseService into a clean facade (287 lines): - Delegates data access to repositories - Maintains public API (no breaking changes) - Keeps data processors in service layer - Preserves require_sqlite decorator - Update tests to mock repository methods instead of private methods - Fix test references to internal methods (_persist_*, _get_*) Benefits: - Clear separation of concerns (one repository per domain) - Easier maintenance (changes isolated to specific repositories) - Better testability (repositories can be mocked individually) - Improved code organization (from 1 file to 7 focused files) All 114 tests passing.
This commit is contained in:
@@ -120,12 +120,10 @@ class TestConfigurablePaths:
|
||||
"iban": "TEST_IBAN",
|
||||
}
|
||||
|
||||
# Use the internal balance persistence method since the test needs direct database access
|
||||
# Use the public balance persistence method
|
||||
import asyncio
|
||||
|
||||
asyncio.run(
|
||||
database_service._persist_balance_sqlite("test-account", balance_data)
|
||||
)
|
||||
asyncio.run(database_service.persist_balance("test-account", balance_data))
|
||||
|
||||
# Retrieve balances
|
||||
balances = asyncio.run(
|
||||
|
||||
Reference in New Issue
Block a user