class SecureNative::EventOptions

Constants

MAX_PROPERTIES_SIZE

Attributes

context[RW]
event[RW]
properties[RW]
timestamp[RW]
user_id[RW]
user_traits[RW]

Public Class Methods

new(event: nil, user_id: nil, user_traits: nil, user_name: nil, email: nil, phone: nil, created_at: nil, context: nil, properties: nil, timestamp: nil) click to toggle source
# File lib/securenative/event_options.rb, line 10
def initialize(event: nil, user_id: nil, user_traits: nil, user_name: nil, email: nil, phone: nil, created_at: nil, context: nil, properties: nil, timestamp: nil)
  if !properties.nil? && properties.length > MAX_PROPERTIES_SIZE
    raise SecureNativeInvalidOptionsError, "You can have only up to #{MAX_PROPERTIES_SIZE} custom properties"
  end

  if user_traits.nil?
    if user_name && email && phone && created_at
      user_traits = SecureNative::UserTraits(user_name, email, phone, created_at)
    elsif user_name && email && phone
      user_traits = SecureNative::UserTraits(user_name, email, phone)
    elsif user_name && email
      user_traits = SecureNative::UserTraits(user_name, email)
    else
      user_traits = UserTraits.new
    end
  end

  @event = event
  @user_id = user_id
  @user_traits = user_traits
  @context = context
  @properties = properties
  @timestamp = timestamp
end