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.google.models import GoogleAdReportingConnection from dmp.google.repositories import GoogleAdReportingConnectionRepository from dmp.google.services import GoogleAdReportingConnectionService @singleton class NotifyGoogleAdReportingSyncCompletedHandler: def __init__( self, db: DefaultDB, reporting_db: ReportingDB, ads_connection_service: AdsConnectionService, ad_reporting_connection_repository: GoogleAdReportingConnectionRepository, ad_reporting_connection_service: GoogleAdReportingConnectionService, ) -> 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[GoogleAdReportingConnection]: return self.ads_connection_service.notify_user_initial_sync_and_refresh_connection( platform=AdsConnectionPlatform.GOOGLE, ad_reporting_connection_repository=self.ad_reporting_connection_repository, ad_reporting_connection_service=self.ad_reporting_connection_service, )