cartodb-4.42/app/helpers/frontend_config_helper.rb
2024-04-06 05:25:13 +00:00

94 lines
4.8 KiB
Ruby

require_dependency 'helpers/avatar_helper'
module FrontendConfigHelper
include AvatarHelper
include FullstoryHelper
def frontend_config_hash(user = current_user)
config = {
app_assets_base_url: app_assets_base_url,
maps_api_template: maps_api_template,
sql_api_template: sql_api_template,
user_name: CartoDB.extract_subdomain(request),
cartodb_com_hosted: Cartodb.get_config(:cartodb_com_hosted),
account_host: CartoDB.account_host,
trackjs_customer: Cartodb.get_config(:trackjs, 'customer'),
trackjs_enabled: Cartodb.get_config(:trackjs, 'enabled'),
trackjs_app_key: Cartodb.get_config(:trackjs, 'app_keys', 'editor'),
google_tag_manager_id: Cartodb.get_config(:google_tag_manager, 'primary'),
intercom_app_id: Cartodb.get_config(:intercom, 'app_id'),
upgrade_url: cartodb_com_hosted? || user.nil? ? false : user.try(:upgrade_url, request.protocol).to_s,
}
if user.present?
config[:fullstory_enabled] = fullstory_enabled?(user)
config[:fullstory_org] = Cartodb.get_config(:fullstory, 'org')
config[:dropbox_api_key] = Cartodb.get_config(:dropbox_api_key).present?
config[:oauth_dropbox] = Cartodb.get_config(:oauth, 'dropbox', 'app_key')
config[:oauth_box] = Cartodb.get_config(:oauth, 'box', 'client_id')
config[:oauth_gdrive] = Cartodb.get_config(:oauth, 'gdrive', 'client_id')
config[:oauth_instagram] = Cartodb.get_config(:oauth, 'instagram', 'app_key')
config[:oauth_mailchimp] = Cartodb.get_config(:oauth, 'mailchimp', 'app_key')
config[:oauth_bigquery] = Cartodb.get_config(:oauth, 'bigquery', 'client_id')
config[:bigquery_enabled] = Carto::Connector.provider_available?('bigquery', user)
config[:oauth_mechanism_bigquery] = Cartodb.get_config(:oauth, 'bigquery', 'oauth_mechanism')
config[:bigquery_uses_service_auth] = Cartodb.get_config(:connectors, 'bigquery', 'credentials_project').present?
config[:arcgis_enabled] = Cartodb.get_config(:datasources, 'arcgis_enabled')
config[:salesforce_enabled] = Cartodb.get_config(:datasources, 'salesforce_enabled')
config[:hive_enabled] = Cartodb.get_config(:connectors, 'hive', 'enabled')
config[:mysql_enabled] = Carto::Connector.provider_available?('mysql', user)
config[:postgres_enabled] = Carto::Connector.provider_available?('postgres', user)
config[:sqlserver_enabled] = Carto::Connector.provider_available?('sqlserver', user)
config[:snowflake_enabled] = Carto::Connector.provider_available?('snowflake', user)
config[:redshift_enabled] = Carto::Connector.provider_available?('redshift', user)
config[:dataobservatory_enabled] = Cartodb.get_config(:connectors, 'dataobservatory', 'enabled')
config[:max_asset_file_size] = Cartodb.get_config(:assets, 'max_file_size')
config[:watcher_ttl] = Cartodb.get_config(:watcher, 'ttl') || 60
config[:licenses] = Carto::License.all
config[:data_library_enabled] = CartoDB::Visualization::CommonDataService.configured?
config[:avatar_valid_extensions] = AVATAR_VALID_EXTENSIONS
config[:app_name] = Cartodb.get_config(:mailer, 'template', 'app_name') || 'CARTO'
config[:datasource_search_twitter] = nil
if Cartodb.get_config(:datasource_search, 'twitter_search', 'standard')
search_url = Cartodb.get_config(:datasource_search, 'twitter_search', 'standard', 'search_url')
config[:datasource_search_twitter] = search_url
end
if Cartodb.get_config(:graphite_public)
config[:statsd_host] = Cartodb.get_config(:graphite_public, 'host')
config[:statsd_port] = Cartodb.get_config(:graphite_public, 'port')
end
if Cartodb.get_config(:error_track)
config[:error_track_url] = Cartodb.get_config(:error_track, 'url')
config[:error_track_percent_users] = Cartodb.get_config(:error_track, 'percent_users')
end
if Cartodb.get_config(:static_image_upload_endpoint)
config[:static_image_upload_endpoint] = Cartodb.get_config(:static_image_upload_endpoint)
end
if !Cartodb.get_config(:dataservices, 'enabled').nil?
config[:dataservices_enabled] = Cartodb.get_config(:dataservices, 'enabled')
end
if CartoDB::Hubspot::instance.enabled? && !CartoDB::Hubspot::instance.token.blank?
config[:hubspot_token] = CartoDB::Hubspot::instance.token
config[:hubspot_ids] = CartoDB::Hubspot::instance.event_ids.to_json.html_safe
config[:hubspot_form_ids] = CartoDB::Hubspot::instance.form_ids
end
end
if Cartodb.get_config(:cdn_url)
config[:cdn_url] = Cartodb.get_config(:cdn_url)
end
config
end
def frontend_config
frontend_config_hash.to_json
end
end