Class: RemarkAnalytics::Event
- Inherits:
-
Object
- Object
- RemarkAnalytics::Event
- Defined in:
- lib/remark_analytics/event.rb
Overview
This class handles the event to emit/post via job
Class Method Summary collapse
- .emit(event_parameters) ⇒ Object
- .post_event(event_params) ⇒ Object
- .prepare_post_parameters(event_parameters) ⇒ Object
Class Method Details
.emit(event_parameters) ⇒ Object
6 7 8 9 |
# File 'lib/remark_analytics/event.rb', line 6 def self.emit(event_parameters) event_params = prepare_post_parameters(event_parameters) post_event(event_params) end |
.post_event(event_params) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/remark_analytics/event.rb', line 29 def self.post_event(event_params) if Rails.env.development? || Rails.env.test? begin RemarkAnalytics::Jobs::PostEventJob.perform_now(event_params) rescue RemarkAnalytics::SecretsMissingError => _e # to pass tests end return end RemarkAnalytics::Jobs::PostEventJob.perform_later(event_params) end |
.prepare_post_parameters(event_parameters) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/remark_analytics/event.rb', line 11 def self.prepare_post_parameters(event_parameters) # mix up the event params with other required data result = {} result[:name] = event_parameters[:name].presence result[:resource_type] = event_parameters[:resource_type].presence result[:resource_id] = event_parameters[:resource_id].presence result[:data] = event_parameters[:data].presence || {} result[:application_version] = event_parameters[:application_version].presence || RemarkAnalytics::VERSION result[:occured_at] = event_parameters[:occured_at].presence || Time.zone.now result[:tenant_name] = event_parameters[:tenant_name].presence || Rails.application.secrets.try(:REMARK_ANALYTICS_TENANT_NAME) || VP_SETTINGS[:tenant] # validate params at the other side (analytics api endoint) result end |