From fe556b97e63ba6c12440c145039623087d216f2f Mon Sep 17 00:00:00 2001 From: Marcos Marx Date: Fri, 22 Oct 2021 02:31:37 -0300 Subject: [PATCH] Publish PR 6962: New Source Salesloft (#7274) * Generated connector source code * Added basic users stream * Added people stream * Added cadences and cadence_memberships streams * Updated unit tests * Fixed docker build * Updated connector to use OAuth * address some checklist items * review comments * small fix * add salesloft into airbyte-config * correct docs Co-authored-by: lgomezm Co-authored-by: prasrvenkat --- .../41991d12-d4b5-439e-afd0-260a31d4c53f.json | 7 +++++++ .../src/main/resources/seed/source_definitions.yaml | 6 ++++++ .../connectors/source-salesloft/setup.py | 2 +- .../source-salesloft/source_salesloft/source.py | 10 +++++----- .../source-salesloft/unit_tests/test_streams.py | 1 - docs/integrations/sources/salesloft.md | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/41991d12-d4b5-439e-afd0-260a31d4c53f.json diff --git a/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/41991d12-d4b5-439e-afd0-260a31d4c53f.json b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/41991d12-d4b5-439e-afd0-260a31d4c53f.json new file mode 100644 index 0000000000000..ab4356fb0bc6d --- /dev/null +++ b/airbyte-config/init/src/main/resources/config/STANDARD_SOURCE_DEFINITION/41991d12-d4b5-439e-afd0-260a31d4c53f.json @@ -0,0 +1,7 @@ +{ + "sourceDefinitionId": "41991d12-d4b5-439e-afd0-260a31d4c53f", + "name": "SalesLoft", + "dockerRepository": "airbyte/source-salesloft", + "dockerImageTag": "0.1.0", + "documentationUrl": "https://docs.airbyte.io/integrations/sources/salesloft" +} diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 72351157fd8fc..a7a5145c61840 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -572,3 +572,9 @@ dockerImageTag: 0.1.0 documentationUrl: https://docs.airbyte.io/integrations/sources/lever-onesignal sourceType: api +- sourceDefinitionId: 41991d12-d4b5-439e-afd0-260a31d4c53f + name: SalesLoft + dockerRepository: airbyte/source-salesloft + dockerImageTag: 0.1.0 + documentationUrl: https://docs.airbyte.io/integrations/sources/lever-onesignal + sourceType: api diff --git a/airbyte-integrations/connectors/source-salesloft/setup.py b/airbyte-integrations/connectors/source-salesloft/setup.py index b7b1a81944c72..751538926a7e3 100644 --- a/airbyte-integrations/connectors/source-salesloft/setup.py +++ b/airbyte-integrations/connectors/source-salesloft/setup.py @@ -6,7 +6,7 @@ from setuptools import find_packages, setup MAIN_REQUIREMENTS = [ - "airbyte-cdk==0.1.22", + "airbyte-cdk~=0.1.22", ] TEST_REQUIREMENTS = [ diff --git a/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py b/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py index ee78225d473c1..8d886f3aecea1 100644 --- a/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py +++ b/airbyte-integrations/connectors/source-salesloft/source_salesloft/source.py @@ -29,11 +29,11 @@ def __init__( super().__init__(authenticator=authenticator) def next_page_token(self, response: requests.Response) -> Optional[Mapping[str, Any]]: - try: - next_page = response.json()["metadata"]["paging"].get("next_page") - return None if not next_page else {"page": next_page} - except: - raise KeyError("error parsing next_page token") + try: + next_page = response.json()["metadata"]["paging"].get("next_page") + return None if not next_page else {"page": next_page} + except Exception as e: + raise KeyError(f"error parsing next_page token: {e}") def request_params( self, stream_state: Mapping[str, Any], stream_slice: Mapping[str, any] = None, next_page_token: Mapping[str, Any] = None diff --git a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py b/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py index e735d0ab3a02d..205e0afcb73d6 100644 --- a/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py +++ b/airbyte-integrations/connectors/source-salesloft/unit_tests/test_streams.py @@ -43,7 +43,6 @@ def test_next_page_token_invalid(patch_base_class): assert isinstance(ex.value, KeyError) - def test_parse_response(patch_base_class): stream = SalesloftStream(authenticator=MagicMock()) response = MagicMock() diff --git a/docs/integrations/sources/salesloft.md b/docs/integrations/sources/salesloft.md index 65353e0fbe821..f27ef5dfcc7f3 100644 --- a/docs/integrations/sources/salesloft.md +++ b/docs/integrations/sources/salesloft.md @@ -41,4 +41,4 @@ List of available streams: | Version | Date | Pull Request | Subject | | :------ | :-------- | :----- | :------ | -| 0.1.0 | 2021-09-08 | [5619](https://github.com/airbytehq/airbyte/pull/6962) | Salesloft Connector | +| 0.1.0 | 2021-10-22 | [6962](https://github.com/airbytehq/airbyte/pull/6962) | Salesloft Connector |