1
0
mirror of synced 2026-01-25 01:01:56 -05:00
Files
airbyte/airbyte-integrations/connectors/source-braintree/source_braintree/source.py
keurcien e12daa7e06 🐛 Source Braintree: catch client initialization error in check_connection method (#26340)
* Update acceptance-test-config to conform to new schema

* Catch client initialization error in check_connection method

* iterate version
2023-05-24 11:31:54 -07:00

55 lines
1.7 KiB
Python

#
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
#
from typing import Any, List, Mapping, Optional, Tuple
from airbyte_cdk.logger import AirbyteLogger
from airbyte_cdk.models import ConnectorSpecification
from airbyte_cdk.sources.abstract_source import AbstractSource
from airbyte_cdk.sources.streams.core import Stream
from source_braintree.spec import BraintreeConfig
from source_braintree.streams import (
BraintreeStream,
CustomerStream,
DiscountStream,
DisputeStream,
MerchantAccountStream,
PlanStream,
SubscriptionStream,
TransactionStream,
)
class SourceBraintree(AbstractSource):
def check_connection(self, logger: AirbyteLogger, config: Mapping[str, Any]) -> Tuple[bool, Optional[Any]]:
"""
:return: AirbyteConnectionStatus indicating a Success or Failure
"""
try:
config = BraintreeConfig(**config)
gateway = BraintreeStream.create_gateway(config)
gateway.customer.all()
except Exception as exc:
return False, repr(exc)
return True, ""
def streams(self, config: Mapping[str, Any]) -> List[Stream]:
config = BraintreeConfig(**config)
return [
CustomerStream(config),
DiscountStream(config),
DisputeStream(config),
TransactionStream(config),
MerchantAccountStream(config),
PlanStream(config),
SubscriptionStream(config),
]
def spec(self, logger: AirbyteLogger) -> ConnectorSpecification:
return ConnectorSpecification(
connectionSpecification=BraintreeConfig.schema(), documentationUrl="https://docs.airbyte.com/integrations/sources/braintree"
)