class RudderAnalyticsSync::Operations::Operation
Constants
- DEFAULT_CONTEXT
Attributes
context[R]
options[R]
request[R]
Public Class Methods
new(client, options = {})
click to toggle source
# File lib/rudder_analytics_sync/operations/operation.rb, line 20 def initialize(client, options = {}) @options = options @context = DEFAULT_CONTEXT.merge(options[:context].to_h) @request = Request.new(client) end
Public Instance Methods
call()
click to toggle source
# File lib/rudder_analytics_sync/operations/operation.rb, line 26 def call raise 'Must be implemented in a subclass' end
Private Instance Methods
base_payload()
click to toggle source
# File lib/rudder_analytics_sync/operations/operation.rb, line 34 def base_payload check_identity! current_time = Time.now.utc payload = { context: context, integrations: options[:integrations] || { All: true }, timestamp: maybe_datetime_in_iso8601(options[:timestamp] || Time.now.utc), sentAt: maybe_datetime_in_iso8601(current_time), messageId: uid(), properties: options[:properties] || {} } # add the userId if present if (options[:user_id]) payload = payload.merge({userId: options[:user_id]}) end # add the anonymousId if present if (options[:anonymous_id]) payload = payload.merge({anonymousId: options[:anonymous_id]}) end payload end
check_identity!()
click to toggle source
# File lib/rudder_analytics_sync/operations/operation.rb, line 59 def check_identity! raise ArgumentError, 'user_id or anonymous_id must be present' \ unless options[:user_id] || options[:anonymous_id] end