34 lines
905 B
Ruby
34 lines
905 B
Ruby
|
require 'hubspot/events_api'
|
||
|
|
||
|
module Carto
|
||
|
module Tracking
|
||
|
module Services
|
||
|
module Hubspot
|
||
|
include ::LoggerHelper
|
||
|
|
||
|
def report_to_hubspot
|
||
|
return unless ::Hubspot::EventsAPI.instance.enabled?
|
||
|
|
||
|
event_name = name.downcase.tr(' ', '_')
|
||
|
id = fetch_event_id_for_event_name(event_name)
|
||
|
|
||
|
if id.present?
|
||
|
hubspot_job = Resque::TrackingJobs::SendHubspotEvent
|
||
|
Resque.enqueue(hubspot_job, id, @format.to_hubspot)
|
||
|
else
|
||
|
message = 'Carto::Tracking: Hubspot event id not configured'
|
||
|
log_error(message: message, event: { name: event_name })
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def fetch_event_id_for_event_name(event_name)
|
||
|
event_ids = Cartodb.get_config(:metrics, 'hubspot', 'event_ids')
|
||
|
event_ids[event_name] if event_ids
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|