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.tiktok.models import TikTokAdReportingConnection from dmp.tiktok.repositories import TikTokAdReportingConnectionRepository from dmp.tiktok.services import TikTokAdReportingConnectionService @singleton class NotifyTikTokAdReportingSyncCompletedHandler: def __init__( self, db: DefaultDB, reporting_db: ReportingDB, ads_connection_service: AdsConnectionService, ad_reporting_connection_repository: TikTokAdReportingConnectionRepository, ad_reporting_connection_service: TikTokAdReportingConnectionService, ) -> 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[TikTokAdReportingConnection]: return self.ads_connection_service.notify_user_initial_sync_and_refresh_connection( platform=AdsConnectionPlatform.TIKTOK, ad_reporting_connection_repository=self.ad_reporting_connection_repository, ad_reporting_connection_service=self.ad_reporting_connection_service, )