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
|