mik-laj commented on a change in pull request #19377:
URL: https://github.com/apache/airflow/pull/19377#discussion_r741921242



##########
File path: airflow/providers/facebook/ads/hooks/ads.py
##########
@@ -119,25 +120,30 @@ def bulk_facebook_report(
         :type sleep_time: int
 
         :return: Facebook Ads API response, converted to Facebook Ads Row 
objects
-        :rtype: List[AdsInsights]
+        :rtype: Dict[str, List[AdsInsights]]
         """
+        all_insights = {}
         api = self._get_service()
-        ad_account = AdAccount(api.get_default_account_id(), api=api)
-        _async = ad_account.get_insights(params=params, fields=fields, 
is_async=True)
-        while True:
-            request = _async.api_get()
-            async_status = request[AdReportRun.Field.async_status]
-            percent = request[AdReportRun.Field.async_percent_completion]
-            self.log.info("%s %s completed, async_status: %s", percent, "%", 
async_status)
-            if async_status == JobStatus.COMPLETED.value:
-                self.log.info("Job run completed")
-                break
-            if async_status in [JobStatus.SKIPPED.value, 
JobStatus.FAILED.value]:
-                message = f"{async_status}. Please retry."
-                raise AirflowException(message)
-            time.sleep(sleep_time)
-        report_run_id = _async.api_get()["report_run_id"]
-        report_object = AdReportRun(report_run_id, api=api)
-        insights = report_object.get_insights()
-        self.log.info("Extracting data from returned Facebook Ads Iterators")
-        return list(insights)
+        for account_id in self.facebook_ads_config["account_id"]:
+            ad_account = AdAccount(account_id, api=api)
+            _async = ad_account.get_insights(params=params, fields=fields, 
is_async=True)
+            while True:
+                request = _async.api_get()
+                async_status = request[AdReportRun.Field.async_status]
+                percent = request[AdReportRun.Field.async_percent_completion]
+                self.log.info("%s %s completed, async_status: %s", percent, 
"%", async_status)
+                if async_status == JobStatus.COMPLETED.value:
+                    self.log.info("Job run completed")
+                    break
+                if async_status in [JobStatus.SKIPPED.value, 
JobStatus.FAILED.value]:
+                    message = f"{async_status}. Please retry."
+                    raise AirflowException(message)
+                time.sleep(sleep_time)
+            report_run_id = _async.api_get()["report_run_id"]
+            report_object = AdReportRun(report_run_id, api=api)
+            self.log.info("Extracting data from returned Facebook Ads 
Iterators")
+            all_insights[account_id] = list(report_object.get_insights())
+            self.log.info(
+                str(account_id) + " Account Id used to extract data from 
Facebook Ads Iterators successfully"
+            )

Review comment:
       ```suggestion
               self.log.info(
                   "%s Account Id used to extract data from Facebook Ads 
Iterators successfully", account_id
               )
   ```

##########
File path: airflow/providers/facebook/ads/hooks/ads.py
##########
@@ -119,25 +120,30 @@ def bulk_facebook_report(
         :type sleep_time: int
 
         :return: Facebook Ads API response, converted to Facebook Ads Row 
objects
-        :rtype: List[AdsInsights]
+        :rtype: Dict[str, List[AdsInsights]]

Review comment:
       It looks like a breaking change. What can we do to prevent this from 
happening?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to