110 lines
4.9 KiB
Ruby
110 lines
4.9 KiB
Ruby
require_relative '../../services/dataservices-metrics/lib/geocoder_usage_metrics'
|
|
require_relative '../../services/dataservices-metrics/lib/isolines_usage_metrics'
|
|
require_relative '../../services/dataservices-metrics/lib/routing_usage_metrics'
|
|
require_relative '../../services/dataservices-metrics/lib/observatory_snapshot_usage_metrics'
|
|
require_relative '../../services/dataservices-metrics/lib/observatory_general_usage_metrics'
|
|
|
|
module DataServicesMetricsHelper
|
|
def get_user_geocoding_data(user, from, to, orgwise = true)
|
|
get_geocoding_data(user, from, to, orgwise)
|
|
end
|
|
|
|
def get_organization_geocoding_data(organization, from, to)
|
|
organization.require_organization_owner_presence!
|
|
get_geocoding_data(organization.owner, from, to)
|
|
end
|
|
|
|
def get_user_here_isolines_data(user, from, to, orgwise = true)
|
|
get_isolines_data(user, from, to, orgwise)
|
|
end
|
|
|
|
def get_organization_here_isolines_data(organization, from, to)
|
|
organization.require_organization_owner_presence!
|
|
get_isolines_data(organization.owner, from, to)
|
|
end
|
|
|
|
def get_user_mapzen_routing_data(user, from, to, orgwise = true)
|
|
get_routing_data(user, from, to, orgwise)
|
|
end
|
|
|
|
def get_organization_mapzen_routing_data(organization, from, to)
|
|
organization.require_organization_owner_presence!
|
|
get_routing_data(organization.owner, from, to)
|
|
end
|
|
|
|
def get_user_obs_snapshot_data(user, from, to, orgwise = true)
|
|
get_obs_snapshot_data(user, from, to, orgwise)
|
|
end
|
|
|
|
def get_organization_obs_snapshot_data(organization, from, to)
|
|
organization.require_organization_owner_presence!
|
|
get_obs_snapshot_data(organization.owner, from, to)
|
|
end
|
|
|
|
def get_user_obs_general_data(user, from, to, orgwise = true)
|
|
get_obs_general_data(user, from, to, orgwise)
|
|
end
|
|
|
|
def get_organization_obs_general_data(organization, from, to)
|
|
organization.require_organization_owner_presence!
|
|
get_obs_general_data(organization.owner, from, to)
|
|
end
|
|
|
|
private
|
|
|
|
def get_geocoding_data(user, from, to, orgwise = true)
|
|
org = user.organization if orgwise
|
|
geocoder_provider = org.try(:geocoder_provider) || user.geocoder_provider
|
|
orgname = org.try(:name)
|
|
usage_metrics = CartoDB::GeocoderUsageMetrics.new(user.username, orgname)
|
|
# FIXME removed once we have fixed to charge google geocoder users for overquota
|
|
return 0 if user.google_maps_geocoder_enabled?
|
|
geocoder_key = CartoDB::GeocoderUsageMetrics::GEOCODER_KEYS.fetch(geocoder_provider, :geocoder_mapbox)
|
|
cache_hits = 0
|
|
success = usage_metrics.get_sum_by_date_range(geocoder_key, :success_responses, from, to)
|
|
empty = usage_metrics.get_sum_by_date_range(geocoder_key, :empty_responses, from, to)
|
|
hit = usage_metrics.get_sum_by_date_range(:geocoder_cache, :success_responses, from, to)
|
|
success + empty + hit
|
|
end
|
|
|
|
def get_isolines_data(user, from, to, orgwise = true)
|
|
org = user.organization if orgwise
|
|
isolines_provider = org.try(:isolines_provider) || user.isolines_provider
|
|
orgname = org.try(:name)
|
|
usage_metrics = CartoDB::IsolinesUsageMetrics.new(user.username, orgname)
|
|
isolines_key = CartoDB::IsolinesUsageMetrics::ISOLINES_KEYS.fetch(isolines_provider, :tomtom_isolines)
|
|
success = usage_metrics.get_sum_by_date_range(isolines_key, :isolines_generated, from, to)
|
|
empty = usage_metrics.get_sum_by_date_range(isolines_key, :empty_responses, from, to)
|
|
success + empty
|
|
end
|
|
|
|
def get_routing_data(user, from, to, orgwise = true)
|
|
org = user.organization if orgwise
|
|
routing_provider = org.try(:routing_provider) || user.routing_provider
|
|
orgname = org.try(:name)
|
|
usage_metrics = CartoDB::RoutingUsageMetrics.new(user.username, orgname)
|
|
routing_key = CartoDB::RoutingUsageMetrics::ROUTING_KEYS.fetch(routing_provider, :routing_tomtom)
|
|
success = usage_metrics.get_sum_by_date_range(routing_key, :success_responses, from, to)
|
|
empty = usage_metrics.get_sum_by_date_range(routing_key, :empty_responses, from, to)
|
|
success + empty
|
|
end
|
|
|
|
def get_obs_snapshot_data(user, from, to, orgwise = true)
|
|
orgname = user.organization.nil? || !orgwise ? nil : user.organization.name
|
|
usage_metrics = CartoDB::ObservatorySnapshotUsageMetrics.new(user.username, orgname)
|
|
obs_snapshot_key = :obs_snapshot
|
|
success = usage_metrics.get_sum_by_date_range(obs_snapshot_key, :success_responses, from, to)
|
|
empty = usage_metrics.get_sum_by_date_range(obs_snapshot_key, :empty_responses, from, to)
|
|
success + empty
|
|
end
|
|
|
|
def get_obs_general_data(user, from, to, orgwise = true)
|
|
orgname = user.organization.nil? || !orgwise ? nil : user.organization.name
|
|
usage_metrics = CartoDB::ObservatoryGeneralUsageMetrics.new(user.username, orgname)
|
|
obs_general_key = :obs_general
|
|
success = usage_metrics.get_sum_by_date_range(obs_general_key, :success_responses, from, to)
|
|
empty = usage_metrics.get_sum_by_date_range(obs_general_key, :empty_responses, from, to)
|
|
success + empty
|
|
end
|
|
end
|