class Multiwoven::Integrations::Destination::Airtable::Client
def discover(connection_config)
def discover(connection_config) connection_config = connection_config.with_indifferent_access base_id = connection_config[:base_id] api_key = connection_config[:api_key] bases = Multiwoven::Integrations::Core::HttpClient.request( AIRTABLE_BASES_ENDPOINT, HTTP_GET, headers: auth_headers(api_key) ) base = extract_bases(bases).find { |b| b["id"] == base_id } base_name = base["name"] schema = Multiwoven::Integrations::Core::HttpClient.request( AIRTABLE_GET_BASE_SCHEMA_ENDPOINT.gsub("{baseId}", base_id), HTTP_GET, headers: auth_headers(api_key) ) catalog = build_catalog_from_schema(extract_body(schema), base_id, base_name) catalog.to_multiwoven_message rescue StandardError => e handle_exception("AIRTABLE:DISCOVER:EXCEPTION", "error", e) end