Uniformed function

This commit is contained in:
Fanilo-Nantenaina 2026-01-06 15:41:03 +03:00
parent c24f276ce4
commit 9a1e1d6726

View file

@ -214,20 +214,21 @@ class UniversignSyncService:
return True, None return True, None
# ========================================
# 3. SYNCHRONISATION DE MASSE (POLLING)
# ========================================
async def sync_all_pending( async def sync_all_pending(
self, session: AsyncSession, max_transactions: int = 50 self, session: AsyncSession, max_transactions: int = 50
) -> Dict[str, int]: ) -> Dict[str, int]:
"""
Synchronise toutes les transactions en attente
"""
from sqlalchemy.orm import selectinload # Si pas déjà importé en haut
query = ( query = (
select(UniversignTransaction) select(UniversignTransaction)
.options(selectinload(UniversignTransaction.signers)) # AJOUTER CETTE LIGNE
.where( .where(
and_( and_(
UniversignTransaction.needs_sync, UniversignTransaction.needs_sync,
or_( or_(
# Transactions non finales
~UniversignTransaction.local_status.in_( ~UniversignTransaction.local_status.in_(
[ [
LocalDocumentStatus.SIGNED, LocalDocumentStatus.SIGNED,
@ -235,10 +236,8 @@ class UniversignSyncService:
LocalDocumentStatus.EXPIRED, LocalDocumentStatus.EXPIRED,
] ]
), ),
# OU dernière sync > 1h (vérification finale)
UniversignTransaction.last_synced_at UniversignTransaction.last_synced_at
< (datetime.now() - timedelta(hours=1)), < (datetime.now() - timedelta(hours=1)),
# OU jamais synchronisé
UniversignTransaction.last_synced_at.is_(None), UniversignTransaction.last_synced_at.is_(None),
), ),
) )