From 4ca1447af058f5a2338eaf045984687cde38e8ea Mon Sep 17 00:00:00 2001 From: oleh Date: Tue, 18 Jan 2022 10:49:28 +0200 Subject: [PATCH] 8906 Fix full refresh read for SurveyResponses stream --- .../source_delighted/source.py | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/airbyte-integrations/connectors/source-delighted/source_delighted/source.py b/airbyte-integrations/connectors/source-delighted/source_delighted/source.py index 49e0491fb3fd08..796c1362410a81 100644 --- a/airbyte-integrations/connectors/source-delighted/source_delighted/source.py +++ b/airbyte-integrations/connectors/source-delighted/source_delighted/source.py @@ -40,10 +40,9 @@ def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, def request_params( self, stream_state: Mapping[str, Any], stream_slice: Mapping[str, any] = None, next_page_token: Mapping[str, Any] = None ) -> MutableMapping[str, Any]: + params = {"per_page": self.limit, "since": self.since} if next_page_token: - params = {"per_page": self.limit, **next_page_token} - else: - params = {"per_page": self.limit, "since": self.since} + params.update(**next_page_token) return params def parse_response(self, response: requests.Response, **kwargs) -> Iterable[Mapping]: @@ -79,6 +78,10 @@ def parse_response(self, response: requests.Response, stream_state: Mapping[str, class People(IncrementalDelightedStream): + """ + API docs: https://app.delighted.com/docs/api/listing-people + """ + def path(self, **kwargs) -> str: return "people.json" @@ -90,6 +93,10 @@ def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, class Unsubscribes(IncrementalDelightedStream): + """ + API docs: https://app.delighted.com/docs/api/listing-unsubscribed-people + """ + cursor_field = "unsubscribed_at" primary_key = "person_id" @@ -98,6 +105,10 @@ def path(self, **kwargs) -> str: class Bounces(IncrementalDelightedStream): + """ + API docs: https://app.delighted.com/docs/api/listing-bounced-people + """ + cursor_field = "bounced_at" primary_key = "person_id" @@ -106,6 +117,10 @@ def path(self, **kwargs) -> str: class SurveyResponses(IncrementalDelightedStream): + """ + API docs: https://app.delighted.com/docs/api/listing-survey-responses + """ + cursor_field = "updated_at" def path(self, **kwargs) -> str: @@ -114,8 +129,13 @@ def path(self, **kwargs) -> str: def request_params(self, stream_state=None, **kwargs): stream_state = stream_state or {} params = super().request_params(stream_state=stream_state, **kwargs) + + if "since" in params: + params["updated_since"] = params.pop("since") + if stream_state: params["updated_since"] = stream_state.get(self.cursor_field) + return params