def salesforce(**kwargs): query_key = "salesforce_query" query_name_key = "salesforce_query_name" object_type_key = "salesforce_object_type" watermark_column_key = "salesforce_watermark_column" watermark_init_key = "salesforce_watermark_init" if hasnt_arg(query_key, kwargs) and hasnt_arg(object_type_key, kwargs): raise click.BadParameter( "Must specify either an object type or a query for Salesforce") if has_arg(query_key, kwargs) and has_arg(object_type_key, kwargs): raise click.BadParameter( "Cannot specify both a query and an object type for Salesforce") if has_arg(query_key, kwargs) and hasnt_arg(query_name_key, kwargs): raise click.BadParameter( "Must specify a query name when running a Salesforce query") if has_arg(watermark_column_key, kwargs) and not state().enabled: raise click.BadParameter( "You must activate state management to use Salesforce watermarks") if hasnt_arg(watermark_column_key, kwargs) and state().enabled: raise click.BadParameter( "You must specify a Salesforce watermark when using state management" ) if hasnt_arg(watermark_init_key, kwargs) and state().enabled: raise click.BadParameter( "You must specify an initial Salesforce watermark value when using state management" ) return SalesforceReader(**extract_args("salesforce_", kwargs))
def facebook(**kwargs): return FacebookReader(**extract_args("facebook_", kwargs))
def bq(**kwargs): return BigQueryWriter(**extract_args("bq_", kwargs))
def mysql(**kwargs): validate_sql_arguments(MySQLReader, "mysql", kwargs) return MySQLReader(**extract_args("mysql_", kwargs))
def radarly(**kwargs): return RadarlyReader(**extract_args("radarly_", kwargs))
def gcs(**kwargs): return GCSWriter(**extract_args("gcs_", kwargs))
def facebook_marketing(**kwargs): # Should add later all the check restrictions on fields/parameters/breakdowns of the API following the value of # object type, see more on : # ---https://developers.facebook.com/docs/marketing-api/insights/breakdowns # ---https://developers.facebook.com/docs/marketing-api/insights return FacebookMarketingReader(**extract_args("facebook_", kwargs))
def adobe(**kwargs): # Should handle valid combinations dimensions/metrics in the API return AdobeReader(**extract_args("adobe_", kwargs))
def gsheets(**kwargs): return GSheetsReader(**extract_args("gsheets_", kwargs))
def google_ads(**kwargs): return GoogleAdsReader(**extract_args("googleads_", kwargs))
def oracle(**kwargs): validate_sql_arguments(OracleReader, "oracle", kwargs) return OracleReader(**extract_args("oracle_", kwargs))
def dbm(**kwargs): # Should add validation argument in function of request_type return DbmReader(**extract_args("dbm_", kwargs))
def s3(**kwargs): return S3Writer(**extract_args("s3_", kwargs))
def yandex_statistics(**kwargs): return YandexStatisticsReader(**extract_args("yandex_", kwargs))
def gcs(**kwargs): return GCSReader(**extract_args("gcs_", kwargs))
def console(**kwargs): return ConsoleWriter(**extract_args("console_", kwargs))
def s3(**kwargs): return S3Reader(**extract_args("s3_", kwargs))
def dcm(**kwargs): return DcmReader(**extract_args("dcm_", kwargs))
def ga(**kwargs): # Should handle valid combinations dimensions/metrics in the API return GaReader(**extract_args("ga_", kwargs))
def sa360_reader(**kwargs): return SA360Reader(**extract_args("sa360_", kwargs))
def search_console(**params): return SearchConsoleReader(**extract_args("search_console_", params))
def adobe_2_0(**kwargs): return AdobeReader_2_0(**extract_args("adobe_2_0_", kwargs))
def yandex_campaigns(**kwargs): return YandexCampaignReader(**extract_args("yandex_", kwargs))