55 lines
1.2 KiB
Ruby
55 lines
1.2 KiB
Ruby
|
require 'rollbar'
|
||
|
require_relative 'hubspot'
|
||
|
|
||
|
module CartoDB
|
||
|
class Metrics
|
||
|
|
||
|
include ::LoggerHelper
|
||
|
|
||
|
def initialize
|
||
|
@hubspot = CartoDB::Hubspot.instance
|
||
|
end
|
||
|
|
||
|
def report(event, payload)
|
||
|
return self unless event.present?
|
||
|
if payload.fetch(:success, false)
|
||
|
report_success(event, payload)
|
||
|
else
|
||
|
report_failure(event, payload)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def report_failure(event, payload)
|
||
|
case event
|
||
|
when :import
|
||
|
# Import failed
|
||
|
@hubspot.track_import_failed(payload)
|
||
|
log_error(message: "Failed import", error_detail: payload)
|
||
|
when :geocoding
|
||
|
# Geocoding failed
|
||
|
@hubspot.track_geocoding_failed(payload)
|
||
|
log_error(message: "Failed geocoding", error_detail: payload)
|
||
|
end
|
||
|
end #report_failure
|
||
|
|
||
|
def report_success(event, payload)
|
||
|
case event
|
||
|
when :import
|
||
|
# Import successful
|
||
|
@hubspot.track_import_success(payload)
|
||
|
when :geocoding
|
||
|
# Geocoding successful
|
||
|
@hubspot.track_geocoding_success(payload)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def import_error_level(payload)
|
||
|
error_code = payload.nil? ? nil : payload[:error_code]
|
||
|
error_code.nil? || error_code == 99999 ? 'error' : 'debug'
|
||
|
end
|
||
|
|
||
|
end
|
||
|
end
|