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"
    redis_state_service_keys = [
        "salesforce_redis_state_service_name",
        "salesforce_redis_state_service_host",
        "salesforce_redis_state_service_port",
    ]

    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")

    redis_state_service_enabled = all([has_arg(key, kwargs) for key in redis_state_service_keys])

    if has_arg(watermark_column_key, kwargs) and not redis_state_service_enabled:
        raise click.BadParameter("You must configure state management to use Salesforce watermarks")

    if hasnt_arg(watermark_column_key, kwargs) and redis_state_service_enabled:
        raise click.BadParameter("You must specify a Salesforce watermark when using state management")

    if hasnt_arg(watermark_init_key, kwargs) and redis_state_service_enabled:
        raise click.BadParameter("You must specify an initial Salesforce watermark value when using state management")

    return SalesforceReader(**extract_args("salesforce_", kwargs))
def mysql(**kwargs):
    query_key = "mysql_query"
    query_name_key = "mysql_query_name"
    table_key = "mysql_table"
    watermark_column_key = "mysql_watermark_column"
    watermark_init_key = "mysql_watermark_init"
    redis_state_service_keys = [
        "mysql_redis_state_service_name",
        "mysql_redis_state_service_host",
        "mysql_redis_state_service_port",
    ]

    if hasnt_arg(query_key, kwargs) and hasnt_arg(table_key, kwargs):
        raise click.BadParameter("Must specify either a table or a query for MySQL reader")

    if has_arg(query_key, kwargs) and has_arg(table_key, kwargs):
        raise click.BadParameter("Cannot specify both a query and a table")

    if has_arg(query_key, kwargs) and hasnt_arg(query_name_key, kwargs):
        raise click.BadParameter("Must specify a query name when running a MySQL query")

    redis_state_service_enabled = all([has_arg(key, kwargs) for key in redis_state_service_keys])

    if has_arg(watermark_column_key, kwargs) and not redis_state_service_enabled:
        raise click.BadParameter("You must configure state management to use MySQL watermarks")

    if hasnt_arg(watermark_column_key, kwargs) and redis_state_service_enabled:
        raise click.BadParameter("You must specify a MySQL watermark when using state management")

    if hasnt_arg(watermark_init_key, kwargs) and redis_state_service_enabled:
        raise click.BadParameter("You must specify an initial MySQL watermark value when using state management")

    return MySQLReader(**extract_args("mysql_", kwargs))
Esempio n. 3
0
def yandex_campaigns(**kwargs):
    return YandexCampaignReader(**extract_args("yandex_", kwargs))
def google_cloud_storage(**kwargs):
    return GoogleCloudStorageReader(**extract_args("gcs_", kwargs))
def google_dv360(**kwargs):
    return GoogleDV360Reader(**extract_args("dv360_", kwargs))
def facebook(**kwargs):
    return FacebookReader(**extract_args("facebook_", kwargs))
Esempio n. 7
0
def google_dbm(**kwargs):
    # Should add validation argument in function of request_type
    return GoogleDBMReader(**extract_args("dbm_", kwargs))
def the_trade_desk(**kwargs):
    return TheTradeDeskReader(**extract_args("ttd_", kwargs))
def mytarget(**kwargs):
    return MyTargetReader(**extract_args("mytarget_", kwargs))
def google_search_console(**params):
    return GoogleSearchConsoleReader(**extract_args("search_console_", params))
Esempio n. 11
0
def google_sa360(**kwargs):
    return GoogleSA360Reader(**extract_args("sa360_", kwargs))
def radarly(**kwargs):
    return RadarlyReader(**extract_args("radarly_", kwargs))
def confluence(**kwargs):
    return ConfluenceReader(**extract_args("confluence_", kwargs))
Esempio n. 14
0
def google_analytics(**kwargs):
    # Should handle valid combinations dimensions/metrics in the API
    return GoogleAnalyticsReader(**extract_args("ga_", kwargs))
def yandex_statistics(**kwargs):
    return YandexStatisticsReader(**extract_args("yandex_", kwargs))
def twitter(**kwargs):
    return TwitterReader(**extract_args("twitter_", kwargs))
Esempio n. 17
0
def adobe_analytics_1_4(**kwargs):
    # Should handle valid combinations dimensions/metrics in the API
    return AdobeAnalytics14Reader(**extract_args("adobe_", kwargs))
def local(**kwargs):
    return LocalWriter(**extract_args("local_", kwargs))
def google_bigquery(**kwargs):
    return GoogleBigQueryWriter(**extract_args("bq_", kwargs))
Esempio n. 20
0
def amazon_s3(**kwargs):
    return AmazonS3Reader(**extract_args("s3_", kwargs))
Esempio n. 21
0
def console(**kwargs):
    return ConsoleWriter(**extract_args("console_", kwargs))
def google_dcm(**kwargs):
    return GoogleDCMReader(**extract_args("dcm_", kwargs))
def google_sheets_old(**kwargs):
    return GoogleSheetsReaderOld(**extract_args("gsheets_", kwargs))
Esempio n. 24
0
def google_ads(**kwargs):
    return GoogleAdsReader(**extract_args("googleads_", kwargs))