Coverage for polar/processor_transaction/service.py: 40%
16 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 17:15 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-12-05 17:15 +0000
1from polar.integrations.stripe.service import stripe as stripe_service 1a
2from polar.models import ProcessorTransaction 1a
3from polar.models.processor_transaction import Processor 1a
4from polar.postgres import AsyncSession 1a
6from .repository import ProcessorTransactionRepository 1a
9class ProcessorTransactionService: 1a
10 async def sync_stripe(self, session: AsyncSession) -> None: 1a
11 repository = ProcessorTransactionRepository.from_session(session)
12 latest_transactions = await repository.get_latest_by_processor(Processor.stripe)
13 latest_processor_ids = {tx.processor_id for tx in latest_transactions}
15 balance_transactions = await stripe_service.list_balance_transactions()
16 async for balance_transaction in balance_transactions:
17 # We reached the point where we have already synced all the fees
18 if balance_transaction.id in latest_processor_ids:
19 break
20 await repository.create(
21 ProcessorTransaction.from_stripe(balance_transaction)
22 )
25processor_transaction = ProcessorTransactionService() 1a