from anydi import singleton from dmp.adapters.db import DefaultDB, ReportingDB, transactional from dmp.app_connections.enums import AdsConnectionPlatform from dmp.app_connections.services import AdsConnectionService from dmp.meta.models import MetaAdReportingConnection from dmp.meta.repositories import MetaAdReportingConnectionRepository from dmp.meta.services import MetaAdReportingConnectionService @singleton class NotifyMetaAdReportingSyncCompletedHandler: def __init__( self, db: DefaultDB, reporting_db: ReportingDB, ads_connection_service: AdsConnectionService, ad_reporting_connection_repository: MetaAdReportingConnectionRepository, ad_reporting_connection_service: MetaAdReportingConnectionService, ) -> None: self.db = db self.reporting_db = reporting_db self.ads_connection_service = ads_connection_service self.ad_reporting_connection_repository = ad_reporting_connection_repository self.ad_reporting_connection_service = ad_reporting_connection_service @transactional def handle(self) -> list[MetaAdReportingConnection]: return self.ads_connection_service.notify_user_initial_sync_and_refresh_connection( platform=AdsConnectionPlatform.META, ad_reporting_connection_repository=self.ad_reporting_connection_repository, ad_reporting_connection_service=self.ad_reporting_connection_service, )